I compiled face-recognition and was successfully running on an LG Leon (armv7I). When I installed the app on a MyPhone UNO with similar CPU architecture (armv7I), the error below occurs:
06-03 22:09:41.538 30619-30619/org.opencv.javacv.facerecognition E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.opencv.javacv.facerecognition, PID: 30619
java.lang.UnsatisfiedLinkError: dlopen failed: library "../../lib/libtbb.so" not found
at java.lang.Runtime.loadLibrary(Runtime.java:372)
at java.lang.System.loadLibrary(System.java:1076)
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:593)
at com.googlecode.javacpp.Loader.load(Loader.java:489)
at com.googlecode.javacpp.Loader.load(Loader.java:431)
at com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:136)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:324)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_imgproc.<clinit>(opencv_imgproc.java:97)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:324)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:85)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:324)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_calib3d.<clinit>(opencv_calib3d.java:94)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:324)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_contrib.<clinit>(opencv_contrib.java:104)
at org.opencv.javacv.facerecognition.PersonRecognizer.<init>(PersonRecognizer.java:44)
at org.opencv.javacv.facerecognition.FdActivity$1.onManagerConnected(FdActivity.java:109)
at org.opencv.android.AsyncServiceHelper$3.onServiceConnected(AsyncServiceHelper.java:320)
at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1223)
at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1240)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library "../../lib/libtbb.so" not found
at java.lang.Runtime.loadLibrary(Runtime.java:372)
at java.lang.System.loadLibrary(System.java:1076)
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:593)
at com.googlecode.javacpp.Loader.load(Loader.java:481)
at com.googlecode.javacpp.Loader.load(Loader.java:431)
at com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:136)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:324)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_imgproc.<clinit>(opencv_imgproc.java:97)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:324)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:85)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:324)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_calib3d.<clinit>(opencv_calib3d.java:94)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:324)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_contrib.<clinit>(opencv_contrib.java:104)
at org.opencv.javacv.facerecognition.PersonRecognizer.<init>(PersonRecognizer.java:44)
at org.opencv.javacv.facerecognition.FdActivity$1.onManagerConnected(FdActivity.java:109)
at org.opencv.android.AsyncServiceHelper$3.onServiceConnected(AsyncServiceHelper.java:320)
at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1223)
at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1240)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
When I looked into com.googlecode.javacv.cpp.opencv_contrib
(which is decompiled by Android Studio) the value for linkpath is linkpath = {"../lib/"}
.
This may seem to be the issue regarding the error.
Is there a way I could compile javacv.jar and maybe tweak around here?
I may be wrong that this part causes the error, do you have any idea where else?
Update: 2023/05/27
I was able to compile face recognition, but I used a different library with different version. Unfortunately, I was not able to check which one was that since I'm no longer part of the project and the company.