Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UnsatisfiedLinkError library open failed #752

Closed
prakashidesign opened this issue Jul 31, 2017 · 4 comments
Closed

UnsatisfiedLinkError library open failed #752

prakashidesign opened this issue Jul 31, 2017 · 4 comments

Comments

@prakashidesign
Copy link

prakashidesign commented Jul 31, 2017

I have done face recognition. It is working in Marshmallow and lollipop.
When I run the same project on Nougat devices I am getting following crash report.

Process: org.opencv.javacv.facerecognition, PID: 24301
java.lang.UnsatisfiedLinkError: dlopen failed: library "../../lib/libtbb.so" not found
at java.lang.Runtime.loadLibrary0(Runtime.java:989)
at java.lang.System.loadLibrary(System.java:1562)
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.(opencv_core.java:136)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:400)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_imgproc.(opencv_imgproc.java:97)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:400)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_highgui.(opencv_highgui.java:85)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:400)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_calib3d.(opencv_calib3d.java:94)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:400)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_contrib.(opencv_contrib.java:104)
at com.googlecode.javacv.cpp.opencv_contrib.createLBPHFaceRecognizer(Native Method)
at org.opencv.javacv.facerecognition.PersonRecognizer.(PersonRecognizer.java:42)
at org.opencv.javacv.facerecognition.FdActivity$1.onManagerConnected(FdActivity.java:145)
at org.opencv.javacv.facerecognition.FdActivity.onResume(FdActivity.java:429)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1269)
at android.app.Activity.performResume(Activity.java:6786)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3407)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3470)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2733)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library "../../lib/libtbb.so" not found
at java.lang.Runtime.loadLibrary0(Runtime.java:989)
at java.lang.System.loadLibrary(System.java:1562)
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.(opencv_core.java:136)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:400)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_imgproc.(opencv_imgproc.java:97)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:400)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_highgui.(opencv_highgui.java:85)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:400)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_calib3d.(opencv_calib3d.java:94)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:400)
at com.googlecode.javacpp.Loader.load(Loader.java:453)
at com.googlecode.javacv.cpp.opencv_contrib.(opencv_contrib.java:104)
at com.googlecode.javacv.cpp.opencv_contrib.createLBPHFaceRecognizer(Native Method)
at org.opencv.javacv.facerecognition.PersonRecognizer.(PersonRecognizer.java:42)
at org.opencv.javacv.facerecognition.FdActivity$1.onManagerConnected(FdActivity.java:145)
at org.opencv.javacv.facerecognition.FdActivity.onResume(FdActivity.java:429)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1269)
at android.app.Activity.performResume(Activity.java:6786)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3407)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3470)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2733)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
So I have tried copy paste armeabi-v7a jniLibs folder and rename it as arm64-v8a and now I am getting java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/org.opencv.javacv.facerecognition-2/lib/arm64/libopencv_java.so" is 32-bit instead of 64-bit

So how can I overcome these issues? Where can I get 64 bit native files for these 32 bit files? or else can I force the system to use only 32 bit files in 64 bit system also? If yes how can I force?

Actually I want working sample of opencv facerecognition project on both 64bit and 32bit systems.

I have searched lot and finally I am helpless. Any help will be highly motivated to me.

@saudet
Copy link
Member

saudet commented Jul 31, 2017 via email

@saudet
Copy link
Member

saudet commented Jul 31, 2017

Marking as duplicate of bytedeco/javacpp-presets#52

Let me know if you encounter any issues creating 64-bit binaries! I'll help you figure it out.

@saudet
Copy link
Member

saudet commented Feb 27, 2018

64-bit builds for Android (as the "android-arm64" and "android-x86_64" platforms) are now available, so please give it a try! Binaries for 1.4.1-SNAPSHOT can be downloaded from the snapshot repository: http://bytedeco.org/builds/

@9729806859
Copy link

Hello dear sir ,
I have used openCv library for the face recognition but it is showing an error which is like"...lib//libtbb.so" is not found.

Please help me !!!!!!!!!!!!!!!!!!!!!!!!!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants