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

java.lang.UnsatisfiedLinkError: org.bytedeco.javacpp.avutil #133

Closed
zouyongdang opened this issue Apr 27, 2015 · 39 comments
Closed

java.lang.UnsatisfiedLinkError: org.bytedeco.javacpp.avutil #133

zouyongdang opened this issue Apr 27, 2015 · 39 comments
Labels

Comments

@zouyongdang
Copy link

I'm using AndroidStudio1.2 on Mac and trying to get RecordActivity to work. I downloaded the bin.zip and added

compile files('libs/javacpp.jar')
compile files('libs/javacv.jar')
compile files('libs/ffmpeg.jar')
compile files('libs/ffmpeg-android-arm.jar')
compile files('libs/opencv.jar')
compile files('libs/opencv-android-arm.jar')

to my gradle file(already put related files under app/libs). But still ran into this error:

E/mm-camera(  325): cpp_hw_params_update_wnr_params:3088 Update WNR
E/AndroidRuntime( 9611): FATAL EXCEPTION: main
E/AndroidRuntime( 9611): java.lang.NoClassDefFoundError: java.lang.ClassNotFoundException: org.bytedeco.javacpp.avutil
E/AndroidRuntime( 9611):    at org.bytedeco.javacpp.Loader.load(Loader.java:388)
E/AndroidRuntime( 9611):    at org.bytedeco.javacpp.Loader.load(Loader.java:354)
E/AndroidRuntime( 9611):    at org.bytedeco.javacpp.avcodec$AVPacket.<clinit>(avcodec.java:1405)
E/AndroidRuntime( 9611):    at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:147)
E/AndroidRuntime( 9611):    at com.zbd.activities.RecordActivity.initRecorder(RecordActivity.java:269)
E/AndroidRuntime( 9611):    at com.zbd.activities.RecordActivity.startRecording(RecordActivity.java:284)
E/AndroidRuntime( 9611):    at com.zbd.activities.RecordActivity.onClick(RecordActivity.java:548)
E/AndroidRuntime( 9611):    at android.view.View.performClick(View.java:4475)
E/AndroidRuntime( 9611):    at android.view.View$PerformClick.run(View.java:18784)
E/AndroidRuntime( 9611):    at android.os.Handler.handleCallback(Handler.java:730)
E/AndroidRuntime( 9611):    at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime( 9611):    at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 9611):    at android.app.ActivityThread.main(ActivityThread.java:5414)
E/AndroidRuntime( 9611):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 9611):    at java.lang.reflect.Method.invoke(Method.java:525)
E/AndroidRuntime( 9611):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
E/AndroidRuntime( 9611):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
E/AndroidRuntime( 9611):    at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 9611): Caused by: java.lang.ClassNotFoundException: org.bytedeco.javacpp.avutil
E/AndroidRuntime( 9611):    at java.lang.Class.classForName(Native Method)
E/AndroidRuntime( 9611):    at java.lang.Class.forName(Class.java:204)
E/AndroidRuntime( 9611):    at org.bytedeco.javacpp.Loader.load(Loader.java:386)
E/AndroidRuntime( 9611):    ... 17 more
E/AndroidRuntime( 9611): Caused by: java.lang.NoClassDefFoundError: org/bytedeco/javacpp/avutil
E/AndroidRuntime( 9611):    ... 20 more
E/AndroidRuntime( 9611): Caused by: java.lang.ClassNotFoundException: Didn't find class "org.bytedeco.javacpp.avutil" on path: /data/app/com.zbd-1.apk
E/AndroidRuntime( 9611):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
E/AndroidRuntime( 9611):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
E/AndroidRuntime( 9611):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
E/AndroidRuntime( 9611):    ... 20 more

Oddly enough, I can open the file in the editor. Anyone tell me how to fix this?

@saudet
Copy link
Member

saudet commented Apr 27, 2015

What happens if you follow the manual instructions here instead?
https://github.com/bytedeco/javacv#manual-installation

@zouyongdang
Copy link
Author

@saudet Hi Samuel. I tried downloading the bin files and adding them as dependencies, as the installation guide said, but still didn't work. Then I did some more search and extract opencv-android-arm.jar and ffmpeg-android-arm.jar and copy all the result .so files under app/src/main/jniLibs/armeabi-v7a/ and now it works.
Thank you!

@saudet
Copy link
Member

saudet commented Apr 27, 2015

Ok, please let me know the cause of the problem if you find it out! I would like to fix this issue. Thanks

@zouyongdang
Copy link
Author

@saudet According to the first answer of this question, It seems that if you already have an armeabi(or armeabi-v7a) folder in your project (in AndroidStudio, it's typically under app/src/main/jniLibs/ folder) that contains other .so files, then the .so files included in opencv-android-arm.jar and ffmpeg-android-arm.jar may not be imported into the project. That causes the ClassNotFoundException.

@zouyongdang
Copy link
Author

@saudet Before this issue is fixed, do you think it would be better to update the manual installation to tell users to try extracting .so files and put them under armeabi-v7a folders? Something like

If you're using AndroidStudio for Android development, and if you run into java.lang.ClassNotFoundException: org.bytedeco.javacpp.avutil, you can try extracting all the .so files in opencv-android-arm.jar and ffmpeg-android-arm.jar, and put them in your jni libs folder(typically app/src/main/jniLibs/armeabi-v7a).

This might save a lot of time for guys in the same situation as my.

@saudet saudet added the bug label Apr 29, 2015
@saudet
Copy link
Member

saudet commented Apr 29, 2015

I see, so this appears to be caused by a bug in Android Studio... Would you know of a better workaround? In any case, thanks for reporting and letting us know what the problem was! I'll update the README.md file if we cannot find a better solution.

@ghost
Copy link

ghost commented May 3, 2015

I'm using AndroidStudio1.2 on Windows7(32bit). I have same problem. I did same workaround, but I had error (maybe same cause).
logcat is :

05-03 12:18:43.789  21945-21945/local.test.app1 W/dalvikvm﹕ Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lorg/bytedeco/javacpp/avutil;
05-03 12:18:43.839  21945-21945/local.test.app1 I/dalvikvm﹕ Rejecting re-init on previously-failed class Lorg/bytedeco/javacpp/avutil; v=0x0
05-03 12:18:43.839  21945-21945/local.test.app1 W/dalvikvm﹕ Exception Ljava/lang/NoClassDefFoundError; thrown while initializing Lorg/bytedeco/javacpp/avcodec$AVPacket;
05-03 12:18:43.839  21945-21945/local.test.app1 D/AndroidRuntime﹕ Shutting down VM
05-03 12:18:43.839  21945-21945/local.test.app1 W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0xb3cb3b20)
05-03 12:18:43.879  21945-21945/local.test.app1 D/dalvikvm﹕ GC_FOR_ALLOC freed 389K, 11% free 3728K/4184K, paused 33ms, total 34ms
05-03 12:18:43.879  21945-21945/local.test.app1 E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: local.test.app1, PID: 21945
    java.lang.IllegalStateException: Could not execute method of the activity
            at android.view.View$1.onClick(View.java:3823)
            at android.view.View.performClick(View.java:4438)
            at android.view.View$PerformClick.run(View.java:18422)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.reflect.InvocationTargetException
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at android.view.View$1.onClick(View.java:3818)
            at android.view.View.performClick(View.java:4438)
            at android.view.View$PerformClick.run(View.java:18422)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NoClassDefFoundError: java.lang.ClassNotFoundException: org.bytedeco.javacpp.avutil
            at org.bytedeco.javacpp.Loader.load(Loader.java:388)
            at org.bytedeco.javacpp.Loader.load(Loader.java:354)
            at org.bytedeco.javacpp.avcodec$AVPacket.<clinit>(avcodec.java:1405)
            at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:147)
            at local.test.app1.TestActivity.initRecorder(TestActivity.java:856)
            at local.test.app1.TestActivity.startRecording(TestActivity.java:523)
            at local.test.app1.TestActivity.onControlClick(TestActivity.java:594)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at android.view.View$1.onClick(View.java:3818)
            at android.view.View.performClick(View.java:4438)
            at android.view.View$PerformClick.run(View.java:18422)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.ClassNotFoundException: org.bytedeco.javacpp.avutil
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:251)
            at org.bytedeco.javacpp.Loader.load(Loader.java:386)
            at org.bytedeco.javacpp.Loader.load(Loader.java:354)
            at org.bytedeco.javacpp.avcodec$AVPacket.<clinit>(avcodec.java:1405)
            at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:147)
            at local.test.app1.TestActivity.initRecorder(TestActivity.java:856)
            at local.test.app1.TestActivity.startRecording(TestActivity.java:523)
            at local.test.app1.TestActivity.onControlClick(TestActivity.java:594)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at android.view.View$1.onClick(View.java:3818)
            at android.view.View.performClick(View.java:4438)
            at android.view.View$PerformClick.run(View.java:18422)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NoClassDefFoundError: org/bytedeco/javacpp/avutil
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:251)
            at org.bytedeco.javacpp.Loader.load(Loader.java:386)
            at org.bytedeco.javacpp.Loader.load(Loader.java:354)
            at org.bytedeco.javacpp.avcodec$AVPacket.<clinit>(avcodec.java:1405)
            at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:147)
            at local.test.app1.TestActivity.initRecorder(TestActivity.java:856)
            at local.test.app1.TestActivity.startRecording(TestActivity.java:523)
            at local.test.app1.TestActivity.onControlClick(TestActivity.java:594)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at android.view.View$1.onClick(View.java:3818)
            at android.view.View.performClick(View.java:4438)
            at android.view.View$PerformClick.run(View.java:18422)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "org.bytedeco.javacpp.avutil" on path: DexPathList[[zip file "/data/app/local.test.app1-2.apk"],nativeLibraryDirectories=[/data/app-lib/local.test.app1-2, /system/lib]]
            at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:251)
            at org.bytedeco.javacpp.Loader.load(Loader.java:386)
            at org.bytedeco.javacpp.Loader.load(Loader.java:354)
            at org.bytedeco.javacpp.avcodec$AVPacket.<clinit>(avcodec.java:1405)
            at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:147)
            at local.test.app1.TestActivity.initRecorder(TestActivity.java:856)
            at local.test.app1.TestActivity.startRecording(TestActivity.java:523)
            at local.test.app1.TestActivity.onControlClick(TestActivity.java:594)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at android.view.View$1.onClick(View.java:3818)
            at android.view.View.performClick(View.java:4438)
            at android.view.View$PerformClick.run(View.java:18422)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)

I built java by using Maven central, I had same error.
My build.gradle is:

compile group: 'org.bytedeco', name: 'javacv', version: '0.11'
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '2.4.11-0.11', classifier: 'android-arm'
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '2.6.1-0.11', classifier: 'android-arm'

I spent two days...
help me.

@saudet
Copy link
Member

saudet commented May 3, 2015

@nskr Could also provide any messages you get about “avutil“ in Android's log? Thanks!

@ghost
Copy link

ghost commented May 4, 2015

I also edited build.gradle like this:

sourceSets {
        main {
            jniLibs.srcDir 'src/main/jniLibs'
        }
}

folder structure is:

src/main/jniLibs
 armeabi/*.so
   or
 armeabi-v7a/*.so

I found *.so files in my app's apk file:

 <APK root>/lib/ 
 armeabi/*.so
   or
 armeabi-v7a/*.so

But, it still does not work.

thanks for your reply.

@saudet
Copy link
Member

saudet commented May 4, 2015

@nskr Well, your device might be x86, so it would help if you could provide the information given in your Android log, thanks.

@ghost
Copy link

ghost commented May 4, 2015

OK, I'll try again to use x86 folder.

@ghost
Copy link

ghost commented May 8, 2015

It worked!

My build.gradle is:

compile group: 'org.bytedeco', name: 'javacv', version: '0.11'
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '2.4.11-0.11', classifier: 'android-x86'
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '2.6.1-0.11', classifier: 'android-x86'

Thanks

@lfdversluis
Copy link
Contributor

Ok so I found a solution that works on both x86 and arm:

Proguard settings:

-keep @org.bytedeco.javacpp.annotation interface * {
    *;
}

-keep @org.bytedeco.javacpp.annotation.Platform public class *

-keepclasseswithmembernames class * {
    @org.bytedeco.* <fields>;
}

-keepclasseswithmembernames class * {
    @org.bytedeco.* <methods>;
}

-keepattributes EnclosingMethod
-keep @interface org.bytedeco.javacpp.annotation.*,javax.inject.*

-keepattributes *Annotation*, Exceptions, Signature, Deprecated, SourceFile, SourceDir, LineNumberTable, LocalVariableTable, LocalVariableTypeTable, Synthetic, EnclosingMethod, RuntimeVisibleAnnotations, RuntimeInvisibleAnnotations, RuntimeVisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations, AnnotationDefault, InnerClasses
-keep class org.bytedeco.javacpp.** {*;}
-dontwarn java.awt.**
-dontwarn org.bytedeco.javacv.**
-dontwarn org.bytedeco.javacpp.**

Build.gradle:

compile group: 'org.bytedeco', name: 'javacv', version: '0.11'
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '2.4.11-0.11', classifier: 'android-arm'
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '2.4.11-0.11', classifier: 'android-x86'
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '2.6.1-0.11', classifier: 'android-arm'
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '2.6.1-0.11', classifier: 'android-x86'

This is based on my SO question: http://stackoverflow.com/questions/30078380/proguard-removing-annotations-in-android-application/30130559#30130559

Note that there may a few proguard rules redundant, but at least it works.

Note that I ran this with proguard 5.1, AS currently has 4.7 which apparently also has issues with annotations.

@saudet
Copy link
Member

saudet commented May 8, 2015

@lfdversluis Please post anything else you find about ProGuard here: #79
Or open a new issue to summarize everything more clearly.Thanks!

@saudet
Copy link
Member

saudet commented Oct 15, 2015 via email

@VincentVivian
Copy link

i have the same issue ,but my device is arm, spent too much time on it, please help,

11-18 11:44:55.300 22131-22131/org.bytedeco.javacv_android_example D/dalvikvm: No JNI_OnLoad found in /system/lib/libc.so 0x41372aa8, skipping init
11-18 11:44:55.300 22131-22131/org.bytedeco.javacv_android_example D/dalvikvm: No JNI_OnLoad found in /system/lib/libm.so 0x41372aa8, skipping init
11-18 11:44:55.300 22131-22131/org.bytedeco.javacv_android_example D/dalvikvm: No JNI_OnLoad found in /system/lib/libz.so 0x41372aa8, skipping init
11-18 11:44:55.310 22131-22131/org.bytedeco.javacv_android_example D/dalvikvm: No JNI_OnLoad found in /system/lib/libdl.so 0x41372aa8, skipping init
11-18 11:44:55.310 22131-22131/org.bytedeco.javacv_android_example D/dalvikvm: No JNI_OnLoad found in /system/lib/liblog.so 0x41372aa8, skipping init
11-18 11:44:55.310 22131-22131/org.bytedeco.javacv_android_example D/dalvikvm: Trying to load lib /data/data/org.bytedeco.javacv_android_example/lib/libavutil.so 0x41372aa8
11-18 11:44:55.310 22131-22131/org.bytedeco.javacv_android_example D/dalvikvm: Added shared lib /data/data/org.bytedeco.javacv_android_example/lib/libavutil.so 0x41372aa8
11-18 11:44:55.310 22131-22131/org.bytedeco.javacv_android_example D/dalvikvm: No JNI_OnLoad found in /data/data/org.bytedeco.javacv_android_example/lib/libavutil.so 0x41372aa8, skipping init
11-18 11:44:55.320 22131-22131/org.bytedeco.javacv_android_example D/dalvikvm: Trying to load lib /data/data/org.bytedeco.javacv_android_example/lib/libjniavutil.so 0x41372aa8
11-18 11:44:55.320 22131-22131/org.bytedeco.javacv_android_example W/dalvikvm: Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lorg/bytedeco/javacpp/avutil;
11-18 11:44:55.390 22131-22131/org.bytedeco.javacv_android_example I/dalvikvm: Rejecting re-init on previously-failed class Lorg/bytedeco/javacpp/avutil; v=0x0
11-18 11:44:55.390 22131-22131/org.bytedeco.javacv_android_example W/dalvikvm: Exception Ljava/lang/NoClassDefFoundError; thrown while initializing Lorg/bytedeco/javacpp/avcodec$AVPacket;
11-18 11:44:55.390 22131-22131/org.bytedeco.javacv_android_example D/AndroidRuntime: Shutting down VM
11-18 11:44:55.390 22131-22131/org.bytedeco.javacv_android_example W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x40a5e1f8)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime: FATAL EXCEPTION: main
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime: java.lang.ExceptionInInitializerError
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:149)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:129)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv_android_example.record.RecordActivity.initRecorder(RecordActivity.java:216)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv_android_example.record.RecordActivity.startRecording(RecordActivity.java:230)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv_android_example.record.RecordActivity.onClick(RecordActivity.java:312)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.view.View.performClick(View.java:3511)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.view.View$PerformClick.run(View.java:14110)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.os.Handler.handleCallback(Handler.java:605)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:92)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:137)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:4426)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:511)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:  Caused by: java.lang.NoClassDefFoundError: java.lang.ClassNotFoundException: org.bytedeco.javacpp.avutil
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacpp.Loader.load(Loader.java:392)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacpp.Loader.load(Loader.java:358)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacpp.avcodec$AVPacket.<clinit>(avcodec.java:1407)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:149) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:129) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv_android_example.record.RecordActivity.initRecorder(RecordActivity.java:216) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv_android_example.record.RecordActivity.startRecording(RecordActivity.java:230) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv_android_example.record.RecordActivity.onClick(RecordActivity.java:312) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.view.View.performClick(View.java:3511) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.view.View$PerformClick.run(View.java:14110) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.os.Handler.handleCallback(Handler.java:605) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:92) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:137) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:4426) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:511) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:  Caused by: java.lang.ClassNotFoundException: org.bytedeco.javacpp.avutil
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.Class.classForName(Native Method)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.Class.forName(Class.java:217)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacpp.Loader.load(Loader.java:390)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacpp.Loader.load(Loader.java:358) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacpp.avcodec$AVPacket.<clinit>(avcodec.java:1407) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:149) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:129) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv_android_example.record.RecordActivity.initRecorder(RecordActivity.java:216) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv_android_example.record.RecordActivity.startRecording(RecordActivity.java:230) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv_android_example.record.RecordActivity.onClick(RecordActivity.java:312) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.view.View.performClick(View.java:3511) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.view.View$PerformClick.run(View.java:14110) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.os.Handler.handleCallback(Handler.java:605) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:92) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:137) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:4426) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:511) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:  Caused by: java.lang.NoClassDefFoundError: org/bytedeco/javacpp/avutil
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.Class.classForName(Native Method) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.Class.forName(Class.java:217) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacpp.Loader.load(Loader.java:390) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacpp.Loader.load(Loader.java:358) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacpp.avcodec$AVPacket.<clinit>(avcodec.java:1407) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:149) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:129) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv_android_example.record.RecordActivity.initRecorder(RecordActivity.java:216) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv_android_example.record.RecordActivity.startRecording(RecordActivity.java:230) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv_android_example.record.RecordActivity.onClick(RecordActivity.java:312) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.view.View.performClick(View.java:3511) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.view.View$PerformClick.run(View.java:14110) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.os.Handler.handleCallback(Handler.java:605) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:92) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:137) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:4426) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:511) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:  Caused by: java.lang.ClassNotFoundException: org.bytedeco.javacpp.avutil
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.Class.classForName(Native Method) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.Class.forName(Class.java:217) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacpp.Loader.load(Loader.java:390) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacpp.Loader.load(Loader.java:358) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacpp.avcodec$AVPacket.<clinit>(avcodec.java:1407) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:149) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:129) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv_android_example.record.RecordActivity.initRecorder(RecordActivity.java:216) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv_android_example.record.RecordActivity.startRecording(RecordActivity.java:230) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at org.bytedeco.javacv_android_example.record.RecordActivity.onClick(RecordActivity.java:312) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.view.View.performClick(View.java:3511) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.view.View$PerformClick.run(View.java:14110) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.os.Handler.handleCallback(Handler.java:605) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:92) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:137) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:4426) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:511) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 
11-18 11:44:55.410 22131-22131/org.bytedeco.javacv_android_example E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method) 

@VincentVivian
Copy link

btw, i use the sample project of javacv-android-example, on android 5.0 is ok, but on 4.0.3 shows the error

@semihozkoroglu
Copy link

@zouyongdang thank you so much. i fixed. i extracted "jar xf opencv-android-arm.jar" and "ffmpeg-android-arm.jar" after than i moved *.so files to "app/src/main/jniLibs/armeabi-v7a" folder and it worked for me.

@hychanbb
Copy link

The issue ( #319) links an answer here (http://stackoverflow.com/questions/35066470/using-javacv-and-realm-together-causes-java-lang-unsatisfiedlinkerror/35088655#35088655)

when i try to add a line "ndk { abiFilters "armeabi-v7a" }" in defaultConfig. Android studio give me an error "Error:(13, 0) Error: NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin. For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental. Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration.
Open File"

Can any one tell how to add these two line in detail...

@hychanbb
Copy link

I solve the problem here just use a lower sdk verison 18 to run mu code .Getting stuck Many Days just because of SDK verison!!!

@marwfair
Copy link

I am getting this error on the Nexus 5x running Marshmallow. However, everything is working fine on my Nexus 5 running Marshmallow, HTC One m8 running Lollipop, and Galaxy Nexus running Jellybean. Any ideas on what would be causing this??

I copied the .so files to the armeabi and armeabi-v7a folders, and placed the javacv, javacpp, opencv, and ffmpeg jars in my libs folder. I have tried every other installation method, but this way seems to have the best results.

@saudet
Copy link
Member

saudet commented Jan 31, 2016

Make sure the device is installing the libraries properly:
https://medium.com/keepsafe-engineering/the-perils-of-loading-native-libraries-on-android-befa49dce2db

@boymustafa
Copy link

Hi, I faced this problem a few days ago and solved it.
I found the solutions here: http://stackoverflow.com/questions/35066470/using-javacv-and-realm-together-causes-java-lang-unsatisfiedlinkerror/35088655#35088655

and change my targetSDKversion to 18 at build.gradle..

Now, it's working

Hope this will help someone

@ghost
Copy link

ghost commented May 1, 2016

Try this code to analyze or run "clean project"

    PackageManager pm = getPackageManager();
    try {
        ApplicationInfo info = pm.getApplicationInfo(getPackageName(),0);
        Log.i(TAG, "app info sourceDir: " + info.sourceDir);
        Log.i(TAG, "app info dataDir: " + info.dataDir);
        Log.i(TAG, "app info nativeLibraryDir: " + info.nativeLibraryDir);
    } catch (Exception e){
    }

@elyonsaber
Copy link

elyonsaber commented Jul 26, 2016

I have tried to configure ProGuard, and extracted .so files and put them under armeabi folders, but still get classNotFound error. So do I need to try to use ReLinker?

@saudet
Copy link
Member

saudet commented Jul 26, 2016

@elyonsaber
Copy link

Thanks for your prompt reply! I will try it, and hope it will work.

@elyonsaber
Copy link

elyonsaber commented Jul 27, 2016

After using ReLinker, I was able to install and run app on device that could run JavaCv1.1 successfully. However for the devices that failed to run 1.1 like , using 1.2 version still occurs error.
For MI Note Pro (5.1.1):
xm-note
And cpu info of this device:
minotecpu
For, HuaWei TIT-AL00 (5.1):
huawei
cpu info of this device:
huaweicpu
It seems like this issue occurs because of CPU architecture?
But I was able to run JavaCv1.2 on one MeiZu device, it is also a AArch64 device. It's CPU info:
meizucpu
I have read bytedeco/javacpp-presets#52 , but still don't have an clear idea about how to resolve this problem.

@saudet
Copy link
Member

saudet commented Jul 27, 2016

@elyonsaber Make sure you are using JavaCPP 1.2.2. There are known issues with JavaCPP 1.2: #412
Please stop using old versions of everything! And if you have any new issues, open another issue. Don't append to unrelated issues.

@saudet saudet removed the help wanted label Aug 5, 2016
@saudet
Copy link
Member

saudet commented Aug 5, 2016

Closing this since there doesn't appear to be a satisfactory way to fix this other than by having Google fix Android Studio. I've documented the workaround here: https://github.com/bytedeco/javacpp-presets/wiki/Issues-with-Build-Tools#android-studio

@darshit7
Copy link

Hi! I got same issue use all possible solution but still not able to figure it out.

Here is logcat error

12-23 08:13:17.091 9442-9442/com.example.dp.facialemotionalyzer W/InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed.
12-23 08:13:17.114 9442-9442/com.example.dp.facialemotionalyzer D/Video path: /storage/emulated/0/FacialEmotionalyzer/Video/1482092619137.mp4
12-23 08:13:17.190 9442-9871/com.example.dp.facialemotionalyzer W/art: Failed to open zip archive '/system/framework/prcui-config.jar': I/O Error
12-23 08:13:17.288 9442-9871/com.example.dp.facialemotionalyzer W/art: Failed to open zip archive '/system/framework/prcui-config.jar': I/O Error
                                                                       
                                                                       [ 12-23 08:13:17.290  9442: 9871 W/         ]
                                                                       Unable to open '/system/framework/prcui-config.jar': No such file or directory
12-23 08:13:17.290 9442-9871/com.example.dp.facialemotionalyzer W/art: Failed to open zip archive '/system/framework/prcui-config.jar': I/O Error
                                                                       
                                                                       [ 12-23 08:13:17.292  9442: 9871 W/         ]
                                                                       Unable to open '/system/framework/prcui-config.jar': No such file or directory
12-23 08:13:17.292 9442-9871/com.example.dp.facialemotionalyzer W/art: Failed to open zip archive '/system/framework/prcui-config.jar': I/O Error
                                                                       
                                                                       [ 12-23 08:13:17.295  9442: 9871 W/         ]
                                                                       Unable to open '/system/framework/prcui-config.jar': No such file or directory
12-23 08:13:17.296 9442-9871/com.example.dp.facialemotionalyzer W/art: Failed to open zip archive '/system/framework/prcui-config.jar': I/O Error
                                                                       
                                                                       [ 12-23 08:13:17.297  9442: 9871 W/         ]
                                                                       Unable to open '/system/framework/prcui-config.jar': No such file or directory
12-23 08:13:17.297 9442-9871/com.example.dp.facialemotionalyzer W/art: Failed to open zip archive '/system/framework/prcui-config.jar': I/O Error
                                                                       
                                                                       [ 12-23 08:13:17.299  9442: 9871 W/         ]
                                                                       Unable to open '/system/framework/prcui-config.jar': No such file or directory
12-23 08:13:17.299 9442-9871/com.example.dp.facialemotionalyzer W/art: Failed to open zip archive '/system/framework/prcui-config.jar': I/O Error
12-23 08:13:17.302 9442-9871/com.example.dp.facialemotionalyzer D/---: org.bytedeco.javacv.FFmpegFrameGrabber@951add0
12-23 08:13:17.310 9442-9871/com.example.dp.facialemotionalyzer I/art: Rejecting re-init on previously-failed class java.lang.Class<org.bytedeco.javacpp.avutil>
                                                                       
                                                                       --------- beginning of crash
12-23 08:13:17.311 9442-9871/com.example.dp.facialemotionalyzer E/AndroidRuntime: FATAL EXCEPTION: Thread-37376
                                                                                  Process: com.example.dp.facialemotionalyzer, PID: 9442
                                                                                  java.lang.UnsatisfiedLinkError: org.bytedeco.javacpp.avutil
                                                                                      at java.lang.Class.classForName(Native Method)
                                                                                      at java.lang.Class.forName(Class.java:324)
                                                                                      at org.bytedeco.javacpp.Loader.load(Loader.java:585)
                                                                                      at org.bytedeco.javacpp.Loader.load(Loader.java:530)
                                                                                      at org.bytedeco.javacpp.avformat$AVFormatContext.<clinit>(avformat.java:2819)
                                                                                      at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:391)
                                                                                      at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:385)
                                                                                      at com.example.dp.facialemotionalyzer.service.VideoAnalyzerService$1.run(VideoAnalyzerService.java:69)
                                                                                      at java.lang.Thread.run(Thread.java:818)

Here is app module gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.3"
    defaultConfig {
        applicationId "com.example.dp.facialemotionalyzer"
        minSdkVersion 21
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    // Use prebilt *.so. Don't run ndk-build
    sourceSets {
        main {
            jniLibs.srcDirs = ["src/main/jniLibs"]
        }
    }
}
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:support-v4:24.2.1'
    compile 'com.android.support:design:24.2.1'
    compile 'com.android.support:support-v13:24.2.1'
    compile 'com.android.support:recyclerview-v7:24.2.1'
    testCompile 'junit:junit:4.12'
    compile project(':dlib')
    compile files('libs/ffmpeg-android-arm.jar')
    compile files('libs/ffmpeg-android-x86.jar')
    compile files('libs/ffmpeg-platform.jar')
    compile files('libs/ffmpeg.jar')
    compile files('libs/javacv-platform.jar')
    compile files('libs/javacv.jar')
    compile files('libs/javacpp.jar')
}

I am using compileSdkVersion 24 and buildToolsVersion "24.0.3".

stories2 added a commit to Futsal-Manager/android-client that referenced this issue Feb 22, 2017
bytedeco/javacv#133 의 zouyongdang commented
on 27 Apr 2015 해결 솔류션을 참고하여 외부 라이브러리 임포트 실패 버그를 픽스함
@sandeepnag25
Copy link

Hi I am running following example code to convert video files to jpg frames on Ubuntu 14.04 VM instance.

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import javax.imageio.ImageIO;
import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.Frame;
import org.bytedeco.javacv.FrameGrabber.Exception;
import org.bytedeco.javacv.Java2DFrameConverter;

public class MovieToImage {
/**
* @param args
* @throws IOException
*/
public static void main(String []args) throws Exception, IOException
{
Scanner s=new Scanner(System.in);
System.out.println("Enter the path of mp4 (for eg c:\test.mp4)");
String mp4Path=s.nextLine();
System.out.println("Enter the folder path where the images will be saved (eg c:\convertedImages)");
String imagePath=s.nextLine();
convertMovietoJPG(mp4Path, imagePath,"jpg",0);
System.out.println("Conversion complete. Please find the images at "+imagePath);
}
public static void convertMovietoJPG(String mp4Path, String imagePath, String imgType, int frameJump) throws Exception, IOException
{
Java2DFrameConverter converter = new Java2DFrameConverter();
FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber(mp4Path);
frameGrabber.start();
Frame frame;
double frameRate=frameGrabber.getFrameRate();
int imgNum=0;
System.out.println("Video has "+frameGrabber.getLengthInFrames()+" frames and has frame rate of "+frameRate);
try {
for(int ii=1;ii<=frameGrabber.getLengthInFrames();ii++){
imgNum++;
frameGrabber.setFrameNumber(ii);
frame = frameGrabber.grab();
BufferedImage bi = converter.convert(frame);
String path = imagePath+File.separator+imgNum+".jpg";
ImageIO.write(bi,imgType, new File(path));
ii+=frameJump;
}
frameGrabber.stop();
} catch (Exception e) {
e.printStackTrace();
}
}
}

I am getting following runtime exception & execution terminates

Exception in thread "main" java.lang.NoSuchMethodError: org.bytedeco.javacpp.BytePointer.capacity(I)Lorg/bytedeco/javacpp/BytePointer;
at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:502)
at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:377)
at MovieToImage.convertMovietoJPG(MovieToImage.java:30)
at MovieToImage.main(MovieToImage.java:23)
I have included all relevant jar files ... Anyone faced similar issue ?

@Nischitha-S
Copy link

09-07 11:56:21.548 9866-9866/com.lmy.samples E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.lmy.samples, PID: 9866
java.lang.UnsatisfiedLinkError: org.bytedeco.javacpp.avutil
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:309)
at org.bytedeco.javacpp.Loader.load(Loader.java:413)
at org.bytedeco.javacpp.Loader.load(Loader.java:381)
at org.bytedeco.javacpp.avformat$AVFormatContext.(avformat.java:2597)
at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:386)
at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:380)
at com.lmy.lymedia.media.FFmpegPlayer.setDataSource(FFmpegPlayer.java:85)
at com.lmy.lymedia.media.FFmpegPlayer.(FFmpegPlayer.java:61)
at com.lmy.lymedia.media.FFmpegPlayer.create(FFmpegPlayer.java:52)
at com.lmy.lymedia.widget.VideoSurfaceView.initPlayer(VideoSurfaceView.java:49)
at com.lmy.samples.ui.VideoPlayActivity.onCreate(VideoPlayActivity.java:25)
at android.app.Activity.performCreate(Activity.java:6093)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2415)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2534)
at android.app.ActivityThread.access$900(ActivityThread.java:164)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1419)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:159)
at android.app.ActivityThread.main(ActivityThread.java:5461)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:964)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:759)
I got this error

@saudet
Copy link
Member

saudet commented Sep 7, 2017

@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/

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

No branches or pull requests