0

I am trying to make a live streaming app and i have followed the below link to add javacv into my project https://github.com/bytedeco/javacv . I created jniLibs folder in my app (app->src->main) but my app crashes without any error.When i tried to debug i found out that the code is breaking at this line in FFmpegFrameRecorder.class

public static void tryLoad() throws Exception {
    if(loadingException != null) {
        throw loadingException;
    } else {
        try {
            Loader.load(avutil.class); // exception here
            Loader.load(swresample.class);
            Loader.load(avcodec.class);
            Loader.load(avformat.class);
            Loader.load(swscale.class);
            avformat.av_register_all();
            avformat.avformat_network_init();
        } catch (Throwable var1) {
            if(var1 instanceof Exception) {
                throw loadingException = (Exception)var1;
            } else {
                throw loadingException = new Exception("Failed to load " + FFmpegFrameRecorder.class, var1);
            }
        }
    }
}

I don't know how to resolve this error.Please help me to figure this out.Thanks in advance

Edit this is the stack trace:

    10-06 10:14:56.242  15946-15946/triptam.go.testopencv E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.NoClassDefFoundError: java.lang.ClassNotFoundException: org.bytedeco.javacpp.avutil
            at org.bytedeco.javacpp.Loader.load(Loader.java:392)
            at org.bytedeco.javacpp.Loader.load(Loader.java:358)
            at org.bytedeco.javacpp.avcodec$AVPacket.<clinit>(avcodec.java:1407)
            at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:149)
            at triptam.go.testopencv.MainActivity.initRecorder(MainActivity.java:411)
            at triptam.go.testopencv.MainActivity.access$1000(MainActivity.java:85)
            at triptam.go.testopencv.MainActivity$startInit$1.run(MainActivity.java:780)
            at android.os.Handler.handleCallback(Handler.java:800)
            at android.os.Handler.dispatchMessage(Handler.java:100)
            at android.os.Looper.loop(Looper.java:194)
            at android.app.ActivityThread.main(ActivityThread.java:5410)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            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:217)
            at org.bytedeco.javacpp.Loader.load(Loader.java:390)
            at org.bytedeco.javacpp.Loader.load(Loader.java:358)
            at org.bytedeco.javacpp.avcodec$AVPacket.<clinit>(avcodec.java:1407)
            at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:149)
            at triptam.go.testopencv.MainActivity.initRecorder(MainActivity.java:411)
            at triptam.go.testopencv.MainActivity.access$1000(MainActivity.java:85)
            at triptam.go.testopencv.MainActivity$startInit$1.run(MainActivity.java:780)
            at android.os.Handler.handleCallback(Handler.java:800)
            at android.os.Handler.dispatchMessage(Handler.java:100)
            at android.os.Looper.loop(Looper.java:194)
            at android.app.ActivityThread.main(ActivityThread.java:5410)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            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:217)
            at org.bytedeco.javacpp.Loader.load(Loader.java:390)
            at org.bytedeco.javacpp.Loader.load(Loader.java:358)
            at org.bytedeco.javacpp.avcodec$AVPacket.<clinit>(avcodec.java:1407)
            at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:149)
            at triptam.go.testopencv.MainActivity.initRecorder(MainActivity.java:411)
            at triptam.go.testopencv.MainActivity.access$1000(MainActivity.java:85)
            at triptam.go.testopencv.MainActivity$startInit$1.run(MainActivity.java:780)
            at android.os.Handler.handleCallback(Handler.java:800)
            at android.os.Handler.dispatchMessage(Handler.java:100)
            at android.os.Looper.loop(Looper.java:194)
            at android.app.ActivityThread.main(ActivityThread.java:5410)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)

            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            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/triptam.go.testopencv-2.apk", zip file "/data/data/triptam.go.testopencv/code_cache/secondary-dexes/triptam.go.testopencv-2.apk.classes2.zip"],nativeLibraryDirectories=[/data/app-lib/triptam.go.testopencv-2, /vendor/lib, /system/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:217)
            at org.bytedeco.javacpp.Loader.load(Loader.java:390)
            at org.bytedeco.javacpp.Loader.load(Loader.java:358)
            at org.bytedeco.javacpp.avcodec$AVPacket.<clinit>(avcodec.java:1407)
            at org.bytedeco.javacv.FFmpegFrameRecorder.<init>(FFmpegFrameRecorder.java:149)
            at triptam.go.testopencv.MainActivity.initRecorder(MainActivity.java:411)
            at triptam.go.testopencv.MainActivity.access$1000(MainActivity.java:85)
            at triptam.go.testopencv.MainActivity$startInit$1.run(MainActivity.java:780)
            at android.os.Handler.handleCallback(Handler.java:800)
            at android.os.Handler.dispatchMessage(Handler.java:100)
            at android.os.Looper.loop(Looper.java:194)
            at android.app.ActivityThread.main(ActivityThread.java:5410)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)

And this is my build.gradle :

compile group: 'org.bytedeco', name: 'javacv', version: '1.0'
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '2.4.9-1.0', classifier:    'android-arm'
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '2.3-1.0', classifier: 'android-arm'

0 Answers0