1

I'm trying to run the following implementation of the algorithm for face recognition (Eigenface) on Android x86 Emulator.

https://code.google.com/p/javacv/source/browse/samples/FaceRecognition.java

Does anyone have experience about it? Are javaCV wrappers prepared to execute on Android x86 arch and therefore not only ARM? Thanks!

1 Answers1

2

It looks like the javaCV wrappers indeed only embed ARM libraries. I've recompiled the javaCV packages for android x86, you can get these from here:

Please let me know if they are working.

You can mix them with the ARM ones easily, you only need to put the x86 .so files (from inside the x86 jars) inside libs/x86/.

edit: I've written an article to explain the process more in-depth and provide the latest version (0.7): http://ph0b.com/getting-an-x86-version-of-javacv-for-android/

ph0b
  • 14,353
  • 4
  • 43
  • 41
  • Hi ph0b!Thanks for your contribution. I tested your packages for android-x86 but I'm still having the same troubles...precisely: dlopen("/data/app-lib/com.example.facerecognition-2/libjniopencv_core.so") failed: Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libopencv_core.so" needed by "libjniopencv_core.so"; caused by load_library(linker.cpp:745): library "libopencv_core.so" not found I tested my code on ARM emulator (.so for ARM in /libs/armeabi) and it works but with Android-x86 I'm still having errors like it above. – user2976792 Dec 23 '13 at 13:54
  • 1
    Are you sure the x86 libs are going into your .apk ? adb shell ls /data/app-lib/com.example.facerecognition-2/ will list the libs that are getting installed inside your emulator, I suspect nothing is there. – ph0b Dec 23 '13 at 19:00
  • you can also download again the cppjars package, I've updated the opencv libs because libtbb wasn't compiled properly. – ph0b Dec 23 '13 at 19:58
  • Good hint! But I had already verified that x86 libs were loaded correctly in /data/app-lib/com.example.facerecognition-2/ Same link for cppjars package?Thanks again – user2976792 Dec 26 '13 at 18:07
  • Yes, same link. "library "libopencv_core.so" not found" is quite explicit, that would be weird to get it if the .so file is there. – ph0b Dec 27 '13 at 17:15
  • You're right, but I verified that the libraries were loaded ... I do not understand why they were not resolved. However, there were two folders: data/app-lib/com.example.facerecognition-1/ and another data/app-lib/com.example.facerecognition-2 / maybe there was some mistake here. Anyway now it works! I have tested with the latest version that you suggested and finally I can also run on Android-x86. Thank you very much for your support! – user2976792 Dec 28 '13 at 09:45
  • Thanks a lot, guys! Now I can use javacv in x86 – Hungry Coder Nov 09 '14 at 21:39