Search code examples
androidpythonpython-2.7java-6

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


I get an error when building Android from source which I have not tinkered with and it should really by all means work (I'm quite certain I've got all the libs installed, Java and Python in the correct version). Error messages go as follows:

> 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....

I'm not really a specialist, so maybe the information I have provided is not complete. In this case - let me know.


Solution

  • At line 507 in file external/chromium_org/base/android/jni_generator/jni_generator.py

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

    It seems you don't have javap available in your PATH

    If you have installed the jdk1.6.0_45 in usr/lib/jvm, then you can run this command

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