为 RK3066 设备构建 Android 时涉及 subprocess.py 的错误

Error involving subprocess.py while building Android for a RK3066 device

我在从源代码构建 Android 时遇到错误,我没有修改它,它应该真的可以正常工作(我很确定我已经安装了所有库,Java 和 Python 在正确的版本中)。错误消息如下:

> Traceback (most recent call last):
  File "../../base/android/jni_generator/jni_generator.py", line 1065, in <module>
    sys.exit(main(sys.argv))
  File "../../base/android/jni_generator/jni_generator.py", line 1061, in main
    options.optimize_generation)
  File "../../base/android/jni_generator/jni_generator.py", line 996, in GenerateJNIHeader
    jni_from_javap = JNIFromJavaP.CreateFromClass(input_file, namespace)
  File "../../base/android/jni_generator/jni_generator.py", line 507, in CreateFromClass
    stderr=subprocess.PIPE)
  File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
make: *** [out/target/product/rk3066/obj/GYP/shared_intermediates/ui/gl/jni/Surface_jni.h] Error 1
make: *** Waiting for unfinished jobs....

我不是专家,所以我提供的信息可能不完整。在这种情况下 - 让我知道。

在文件 external/chromium_org/base/android/jni_generator/jni_generator.py

的第 507 行
   p = subprocess.Popen(args=['javap', class_name], 
                     cwd=os.path.dirname(class_file), 
                     stdout=subprocess.PIPE, 
                     stderr=subprocess.PIPE) 

您的 PATH 中似乎没有可用的 javap

如果你在usr/lib/jvm中安装了jdk1.6.0_45,那么你可以运行这个命令

  sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk1.6.0_45/bin/javap 1