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

tesseract - Couldn't load gnustl_static: findLibrary returned null - android #38

Closed
dariuszseweryn opened this issue Feb 20, 2015 · 26 comments · Fixed by bytedeco/javacpp#256
Labels

Comments

@dariuszseweryn
Copy link

Hello!

First of all - I will mention that I am new to using JNI so my problem may be a bit noobish.

I am trying to get tesseract to work on Android. I am using a Windows machine to develop so I decided to use precompiled libs from maven as there would be probably a lot of problems with lack of needed dependency libs.

I am using Gradle so I have added in dependencies:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
//    compile fileTree(dir: 'jniLibs', include: ['*.so'])
    wearApp project(':wear')
    compile 'com.android.support:appcompat-v7:21.0.3'
    //    compile 'com.google.android.gms:play-services:6.5.87'
    compile 'com.octo.android.robospice:robospice:1.4.14'
    compile 'com.octo.android.robospice:robospice-okhttp:1.4.14'
    compile 'com.jakewharton:butterknife:6.1.0'
    compile 'org.bytedeco.javacpp-presets:tesseract:3.03-rc1-0.10'
    compile 'org.bytedeco.javacpp-presets:tesseract:3.03-rc1-0.10:android-arm'
    compile 'org.bytedeco.javacpp-presets:leptonica:1.71-0.10:android-arm'
}

Everything seems fine, tesseract is being seen, lept as well, but then:

    02-20 23:24:11.812    5231-5231/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /system/lib/libc.so 0x40513af8, skipping init
    02-20 23:24:11.812    5231-5231/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /system/lib/libm.so 0x40513af8, skipping init
    02-20 23:24:11.816    5231-5231/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /system/lib/libz.so 0x40513af8, skipping init
    02-20 23:24:11.816    5231-5231/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /system/lib/libdl.so 0x40513af8, skipping init
    02-20 23:24:11.820    5231-5231/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /system/lib/liblog.so 0x40513af8, skipping init
    02-20 23:24:11.820    5231-5231/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/liblept.so 0x40513af8
    02-20 23:24:11.894    5231-5231/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Added shared lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/liblept.so 0x40513af8
    02-20 23:24:11.894    5231-5231/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /data/data/pl.seweryn.dariusz.pogodaicm/lib/liblept.so 0x40513af8, skipping init
    02-20 23:24:11.894    5231-5231/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libjnilept.so 0x40513af8
    02-20 23:24:11.949    5231-5231/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lorg/bytedeco/javacpp/lept;
    02-20 23:24:11.949    5231-5231/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ Exception Ljava/lang/ExceptionInInitializerError; thrown while initializing Lorg/bytedeco/javacpp/tesseract$TessBaseAPI;
    02-20 23:24:11.957    5231-5231/pl.seweryn.dariusz.pogodaicm D/AndroidRuntime﹕ Shutting down VM
    02-20 23:24:11.957    5231-5231/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x40015578)
    02-20 23:24:12.000    5231-5231/pl.seweryn.dariusz.pogodaicm E/AndroidRuntime﹕ FATAL EXCEPTION: main
     java.lang.ExceptionInInitializerError
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.ExceptionInInitializerError
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:234)
            at org.bytedeco.javacpp.Loader.load(Loader.java:385)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract$TessBaseAPI.<clinit>(tesseract.java:3070)
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)
         Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1963]:    82 could not load needed library 'liblept.so.4' for 'libjnilept.so' (load_library[1105]: Library 'liblept.so.4' not found)
            at java.lang.Runtime.loadLibrary(Runtime.java:434)
            at java.lang.System.loadLibrary(System.java:554)
            at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)
            at org.bytedeco.javacpp.Loader.load(Loader.java:410)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.lept.<clinit>(lept.java:10)
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:234)
            at org.bytedeco.javacpp.Loader.load(Loader.java:385)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract$TessBaseAPI.<clinit>(tesseract.java:3070)
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.UnsatisfiedLinkError: Couldn't load gnustl_static: findLibrary returned null
            at java.lang.Runtime.loadLibrary(Runtime.java:429)
            at java.lang.System.loadLibrary(System.java:554)
            at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)
            at org.bytedeco.javacpp.Loader.load(Loader.java:401)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.lept.<clinit>(lept.java:10)
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:234)
            at org.bytedeco.javacpp.Loader.load(Loader.java:385)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract$TessBaseAPI.<clinit>(tesseract.java:3070)
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)

As a bit of background - I try to run the application and create a new TessBaseAPI() on a Samsung Galaxy S1 (old but gold) with Android 2.3.3.
As I was googling around for a solution I have found some page which makes me think:

  • either the android-arm jars do not contain properly build .so files (with gnustl_static) or my Android device is weird and doesn't have that library. Can you share some thoughts?

Thank you in advance.

Best Regards

@saudet
Copy link
Member

saudet commented Feb 21, 2015

The problem isn't gnustl_static, it's liblept.so.4. For some reason, it's trying to load that instead of liblept.so... Can you try to rename liblept.so to liblept.so.4 and let me know what that gives? Thanks!

@dariuszseweryn
Copy link
Author

I have unpacked the leptonica.jar for android-arm and renamed the liblept.so to liblept.so.4 now the stacktrace looks like:

02-21 22:32:32.792  18258-18258/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /system/lib/libc.so 0x40513f58, skipping init
02-21 22:32:32.792  18258-18258/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /system/lib/libm.so 0x40513f58, skipping init
02-21 22:32:32.800  18258-18258/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /system/lib/libz.so 0x40513f58, skipping init
02-21 22:32:32.808  18258-18258/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /system/lib/libdl.so 0x40513f58, skipping init
02-21 22:32:32.812  18258-18258/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /system/lib/liblog.so 0x40513f58, skipping init
02-21 22:32:32.812  18258-18258/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libjnilept.so 0x40513f58
02-21 22:32:32.953  18258-18258/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lorg/bytedeco/javacpp/lept;
02-21 22:32:32.953  18258-18258/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ Exception Ljava/lang/ExceptionInInitializerError; thrown while initializing Lorg/bytedeco/javacpp/tesseract$TessBaseAPI;
02-21 22:32:32.968  18258-18258/pl.seweryn.dariusz.pogodaicm D/AndroidRuntime﹕ Shutting down VM
02-21 22:32:32.968  18258-18258/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x40015578)
02-21 22:32:33.007  18258-18258/pl.seweryn.dariusz.pogodaicm E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.ExceptionInInitializerError
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.ExceptionInInitializerError
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:234)
            at org.bytedeco.javacpp.Loader.load(Loader.java:385)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract$TessBaseAPI.<clinit>(tesseract.java:3070)
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1963]:    82 could not load needed library 'liblept.so.4' for 'libjnilept.so' (load_library[1105]: Library 'liblept.so.4' not found)
            at java.lang.Runtime.loadLibrary(Runtime.java:434)
            at java.lang.System.loadLibrary(System.java:554)
            at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)
            at org.bytedeco.javacpp.Loader.load(Loader.java:410)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.lept.<clinit>(lept.java:10)
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:234)
            at org.bytedeco.javacpp.Loader.load(Loader.java:385)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract$TessBaseAPI.<clinit>(tesseract.java:3070)
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.UnsatisfiedLinkError: Couldn't load lept: findLibrary returned null
            at java.lang.Runtime.loadLibrary(Runtime.java:429)
            at java.lang.System.loadLibrary(System.java:554)
            at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)
            at org.bytedeco.javacpp.Loader.load(Loader.java:401)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.lept.<clinit>(lept.java:10)
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:234)
            at org.bytedeco.javacpp.Loader.load(Loader.java:385)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract$TessBaseAPI.<clinit>(tesseract.java:3070)
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)

I had also tried having one liblept.so and liblept.so.4 at the same time but it ended with stacktrace I have included in the first post. Still no clue what is going on.

Edit: found something interesting.

Edit 2: So basing on the "could not load needed library: >>liblept.so.4<<" I assume that the problem is the lack of support for versioned libraries in Android OS. In the above link to SO question there is an explaination and possible fix. @saudet what do you think?

@saudet saudet added the bug label Feb 23, 2015
@saudet
Copy link
Member

saudet commented Feb 23, 2015

Yes, I'm aware of Android's dislike for versioning, but I neglected to do it for Leptonica. It should be fixed now. Give it a spin and let me know if it doesn't work for some reason, thanks!

@dariuszseweryn
Copy link
Author

Will definitely do. Any chance for a mavenised .jar file or compiled .so? (Windows... :/)

@saudet
Copy link
Member

saudet commented Feb 23, 2015

I've uploaded something here:
https://oss.sonatype.org/content/repositories/snapshots/org/bytedeco/javacpp-presets/leptonica/1.71-0.10-SNAPSHOT/
But this isn't properly released, but should work if extracted manually, so anyway, try it out :) Thanks!

@dariuszseweryn
Copy link
Author

So I have extracted all .so files from the snapshot .jar. A fresh stacktrace for you:

02-23 17:27:09.335  23273-23275/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ GC_CONCURRENT freed 951K, 53% free 3223K/6727K, external 1620K/2108K, paused 29ms+4ms
02-23 17:27:09.367  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libc.so 0x405156c0
02-23 17:27:09.367  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Added shared lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libc.so 0x405156c0
02-23 17:27:09.371  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /data/data/pl.seweryn.dariusz.pogodaicm/lib/libc.so 0x405156c0, skipping init
02-23 17:27:09.371  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libm.so 0x405156c0
02-23 17:27:09.371  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Added shared lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libm.so 0x405156c0
02-23 17:27:09.371  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /data/data/pl.seweryn.dariusz.pogodaicm/lib/libm.so 0x405156c0, skipping init
02-23 17:27:09.371  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libz.so 0x405156c0
02-23 17:27:09.371  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Added shared lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libz.so 0x405156c0
02-23 17:27:09.371  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /data/data/pl.seweryn.dariusz.pogodaicm/lib/libz.so 0x405156c0, skipping init
02-23 17:27:09.375  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libdl.so 0x405156c0
02-23 17:27:09.375  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Added shared lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libdl.so 0x405156c0
02-23 17:27:09.375  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /data/data/pl.seweryn.dariusz.pogodaicm/lib/libdl.so 0x405156c0, skipping init
02-23 17:27:09.378  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /system/lib/liblog.so 0x405156c0, skipping init
02-23 17:27:09.378  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/liblept.so 0x405156c0
02-23 17:27:09.523  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Added shared lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/liblept.so 0x405156c0
02-23 17:27:09.523  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /data/data/pl.seweryn.dariusz.pogodaicm/lib/liblept.so 0x405156c0, skipping init
02-23 17:27:09.539  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libjnilept.so 0x405156c0
02-23 17:27:09.671  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Added shared lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libjnilept.so 0x405156c0
02-23 17:27:10.050  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libtesseract.so 0x405156c0
02-23 17:27:10.066  23273-23275/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ GC_CONCURRENT freed 643K, 52% free 3294K/6727K, external 1615K/2108K, paused 2ms+2ms
02-23 17:27:10.164  23273-23273/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libjnitesseract.so 0x405156c0
02-23 17:27:10.191  23273-23273/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lorg/bytedeco/javacpp/tesseract;
02-23 17:27:10.191  23273-23273/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ Exception Ljava/lang/ExceptionInInitializerError; thrown while initializing Lorg/bytedeco/javacpp/tesseract$TessBaseAPI;
02-23 17:27:10.222  23273-23273/pl.seweryn.dariusz.pogodaicm D/AndroidRuntime﹕ Shutting down VM
02-23 17:27:10.222  23273-23273/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x40015578)
02-23 17:27:10.253  23273-23273/pl.seweryn.dariusz.pogodaicm E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.ExceptionInInitializerError
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.ExceptionInInitializerError
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:234)
            at org.bytedeco.javacpp.Loader.load(Loader.java:385)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract$TessBaseAPI.<clinit>(tesseract.java:3070)
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1963]: 18779 could not load needed library 'libtesseract.so.3' for 'libjnitesseract.so' (load_library[1105]: Library 'libtesseract.so.3' not found)
            at java.lang.Runtime.loadLibrary(Runtime.java:434)
            at java.lang.System.loadLibrary(System.java:554)
            at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)
            at org.bytedeco.javacpp.Loader.load(Loader.java:410)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract.<clinit>(tesseract.java:12)
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:234)
            at org.bytedeco.javacpp.Loader.load(Loader.java:385)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract$TessBaseAPI.<clinit>(tesseract.java:3070)
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1963]: 18779 could not load needed library 'liblept.so.4' for 'libtesseract.so' (load_library[1105]: Library 'liblept.so.4' not found)
            at java.lang.Runtime.loadLibrary(Runtime.java:434)
            at java.lang.System.loadLibrary(System.java:554)
            at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)
            at org.bytedeco.javacpp.Loader.load(Loader.java:401)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract.<clinit>(tesseract.java:12)
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:234)
            at org.bytedeco.javacpp.Loader.load(Loader.java:385)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract$TessBaseAPI.<clinit>(tesseract.java:3070)
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)

Edit: correct me if I am wrong but apparently libtesseract.so as well is depending on liblept and needs it in version 4.x.x?

saudet added a commit that referenced this issue Feb 24, 2015
@saudet
Copy link
Member

saudet commented Feb 24, 2015

Right, we need to remove versions from Tesseract as well. I've uploaded some binaries for that here:
https://oss.sonatype.org/content/repositories/snapshots/org/bytedeco/javacpp-presets/tesseract/3.03-rc1-0.10-SNAPSHOT/
Let me know if you encounter any other problems! Thanks for reporting

@dariuszseweryn
Copy link
Author

This time a totally different stacktrace...

02-24 17:40:30.277    2320-2322/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ GC_CONCURRENT freed 952K, 53% free 3220K/6727K, external 1620K/2108K, paused 5ms+2ms
02-24 17:40:30.550    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libc.so 0x40515c58
02-24 17:40:30.550    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Added shared lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libc.so 0x40515c58
02-24 17:40:30.550    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /data/data/pl.seweryn.dariusz.pogodaicm/lib/libc.so 0x40515c58, skipping init
02-24 17:40:30.554    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libm.so 0x40515c58
02-24 17:40:30.554    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Added shared lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libm.so 0x40515c58
02-24 17:40:30.554    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /data/data/pl.seweryn.dariusz.pogodaicm/lib/libm.so 0x40515c58, skipping init
02-24 17:40:30.554    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libz.so 0x40515c58
02-24 17:40:30.558    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Added shared lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libz.so 0x40515c58
02-24 17:40:30.558    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /data/data/pl.seweryn.dariusz.pogodaicm/lib/libz.so 0x40515c58, skipping init
02-24 17:40:30.562    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libdl.so 0x40515c58
02-24 17:40:30.562    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Added shared lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libdl.so 0x40515c58
02-24 17:40:30.562    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /data/data/pl.seweryn.dariusz.pogodaicm/lib/libdl.so 0x40515c58, skipping init
02-24 17:40:30.582    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /system/lib/liblog.so 0x40515c58, skipping init
02-24 17:40:30.585    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/liblept.so 0x40515c58
02-24 17:40:30.691    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Added shared lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/liblept.so 0x40515c58
02-24 17:40:30.691    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /data/data/pl.seweryn.dariusz.pogodaicm/lib/liblept.so 0x40515c58, skipping init
02-24 17:40:30.695    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libjnilept.so 0x40515c58
02-24 17:40:30.882    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Added shared lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libjnilept.so 0x40515c58
02-24 17:40:31.812    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libtesseract.so 0x40515c58
02-24 17:40:31.859    2320-2322/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ GC_CONCURRENT freed 643K, 52% free 3295K/6727K, external 1615K/2108K, paused 88ms+26ms
02-24 17:40:32.894    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Added shared lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libtesseract.so 0x40515c58
02-24 17:40:32.894    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ No JNI_OnLoad found in /data/data/pl.seweryn.dariusz.pogodaicm/lib/libtesseract.so 0x40515c58, skipping init
02-24 17:40:32.902    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Trying to load lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libjnitesseract.so 0x40515c58
02-24 17:40:33.011    2320-2320/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ Added shared lib /data/data/pl.seweryn.dariusz.pogodaicm/lib/libjnitesseract.so 0x40515c58
02-24 17:40:33.160    2320-2320/pl.seweryn.dariusz.pogodaicm E/javacpp﹕ Error loading class org/bytedeco/javacpp/Pointer.
02-24 17:40:33.160    2320-2320/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ JNI_OnLoad returned bad version (-1) in /data/data/pl.seweryn.dariusz.pogodaicm/lib/libjnitesseract.so 0x40515c58
02-24 17:40:33.160    2320-2320/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ Exception Ljava/lang/ClassNotFoundException; thrown while initializing Lorg/bytedeco/javacpp/tesseract;
02-24 17:40:33.160    2320-2320/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ Exception Ljava/lang/ExceptionInInitializerError; thrown while initializing Lorg/bytedeco/javacpp/tesseract$TessBaseAPI;
02-24 17:40:33.253    2320-2320/pl.seweryn.dariusz.pogodaicm D/AndroidRuntime﹕ Shutting down VM
02-24 17:40:33.253    2320-2320/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x40015578)
02-24 17:40:33.406    2320-2320/pl.seweryn.dariusz.pogodaicm E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.ExceptionInInitializerError
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.ExceptionInInitializerError
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:234)
            at org.bytedeco.javacpp.Loader.load(Loader.java:385)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract$TessBaseAPI.<clinit>(tesseract.java:3070)
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            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.tesseract$ChoiceIterator
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:234)
            at org.bytedeco.javacpp.Loader.putMemberOffset(Loader.java:623)
            at java.lang.Runtime.nativeLoad(Native Method)
            at java.lang.Runtime.nativeLoad(Native Method)
            at java.lang.Runtime.loadLibrary(Runtime.java:432)
            at java.lang.System.loadLibrary(System.java:554)
            at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)
            at org.bytedeco.javacpp.Loader.load(Loader.java:410)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract.<clinit>(tesseract.java:12)
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:234)
            at org.bytedeco.javacpp.Loader.load(Loader.java:385)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract$TessBaseAPI.<clinit>(tesseract.java:3070)
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            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.tesseract$ChoiceIterator
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:234)
            at org.bytedeco.javacpp.Loader.putMemberOffset(Loader.java:623)
            at java.lang.Runtime.nativeLoad(Native Method)
            at java.lang.Runtime.nativeLoad(Native Method)
            at java.lang.Runtime.loadLibrary(Runtime.java:432)
            at java.lang.System.loadLibrary(System.java:554)
            at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)
            at org.bytedeco.javacpp.Loader.load(Loader.java:410)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract.<clinit>(tesseract.java:12)
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:234)
            at org.bytedeco.javacpp.Loader.load(Loader.java:385)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract$TessBaseAPI.<clinit>(tesseract.java:3070)
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            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.tesseract$ChoiceIterator in loader dalvik.system.PathClassLoader[/data/app/pl.seweryn.dariusz.pogodaicm-2.apk]
            at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:234)
            at org.bytedeco.javacpp.Loader.putMemberOffset(Loader.java:623)
            at java.lang.Runtime.nativeLoad(Native Method)
            at java.lang.Runtime.nativeLoad(Native Method)
            at java.lang.Runtime.loadLibrary(Runtime.java:432)
            at java.lang.System.loadLibrary(System.java:554)
            at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)
            at org.bytedeco.javacpp.Loader.load(Loader.java:410)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract.<clinit>(tesseract.java:12)
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:234)
            at org.bytedeco.javacpp.Loader.load(Loader.java:385)
            at org.bytedeco.javacpp.Loader.load(Loader.java:353)
            at org.bytedeco.javacpp.tesseract$TessBaseAPI.<clinit>(tesseract.java:3070)
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)

Lack of ChoiceIterator class?

@saudet
Copy link
Member

saudet commented Feb 24, 2015

Yes, that's been added recently, so make sure to use the recent class files too.

@dariuszseweryn
Copy link
Author

Downloaded the java wrapper .jar.

02-25 07:20:52.605  15650-15650/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ Unable to resolve superclass of Lorg/bytedeco/javacpp/tesseract$TessBaseAPI; (2399)
02-25 07:20:52.605  15650-15650/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ Link of class 'Lorg/bytedeco/javacpp/tesseract$TessBaseAPI;' failed
02-25 07:20:52.605  15650-15650/pl.seweryn.dariusz.pogodaicm E/dalvikvm﹕ Could not find class 'org.bytedeco.javacpp.tesseract$TessBaseAPI', referenced from method pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart
02-25 07:20:52.605  15650-15650/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ VFY: unable to resolve new-instance 2471 (Lorg/bytedeco/javacpp/tesseract$TessBaseAPI;) in Lpl/seweryn/dariusz/pogodaicm/ActivityMain;
02-25 07:20:52.605  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: replacing opcode 0x22 at 0x0005
02-25 07:20:52.609  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: dead code 0x0007-000d in Lpl/seweryn/dariusz/pogodaicm/ActivityMain;.onStart ()V
02-25 07:20:53.152  15650-15650/pl.seweryn.dariusz.pogodaicm I/dalvikvm﹕ Could not find method android.view.ViewGroup.onNestedScrollAccepted, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onNestedScrollAccepted
02-25 07:20:53.160  15650-15650/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ VFY: unable to resolve virtual method 11382: Landroid/view/ViewGroup;.onNestedScrollAccepted (Landroid/view/View;Landroid/view/View;I)V
02-25 07:20:53.160  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0000
02-25 07:20:53.164  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: dead code 0x0003-0015 in Landroid/support/v7/internal/widget/ActionBarOverlayLayout;.onNestedScrollAccepted (Landroid/view/View;Landroid/view/View;I)V
02-25 07:20:53.164  15650-15650/pl.seweryn.dariusz.pogodaicm I/dalvikvm﹕ Could not find method android.view.ViewGroup.onStopNestedScroll, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onStopNestedScroll
02-25 07:20:53.164  15650-15650/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ VFY: unable to resolve virtual method 11388: Landroid/view/ViewGroup;.onStopNestedScroll (Landroid/view/View;)V
02-25 07:20:53.164  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0000
02-25 07:20:53.164  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: dead code 0x0003-0025 in Landroid/support/v7/internal/widget/ActionBarOverlayLayout;.onStopNestedScroll (Landroid/view/View;)V
02-25 07:20:53.167  15650-15650/pl.seweryn.dariusz.pogodaicm I/dalvikvm﹕ Could not find method android.view.ViewGroup.onWindowSystemUiVisibilityChanged, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onWindowSystemUiVisibilityChanged
02-25 07:20:53.167  15650-15650/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ VFY: unable to resolve virtual method 11390: Landroid/view/ViewGroup;.onWindowSystemUiVisibilityChanged (I)V
02-25 07:20:53.167  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0008
02-25 07:20:53.171  15650-15650/pl.seweryn.dariusz.pogodaicm I/dalvikvm﹕ Could not find method android.support.v7.internal.widget.ActionBarOverlayLayout.stopNestedScroll, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.setHideOnContentScrollEnabled
02-25 07:20:53.175  15650-15650/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ VFY: unable to resolve virtual method 9071: Landroid/support/v7/internal/widget/ActionBarOverlayLayout;.stopNestedScroll ()V
02-25 07:20:53.175  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x000e
02-25 07:20:53.214  15650-15650/pl.seweryn.dariusz.pogodaicm I/dalvikvm﹕ Could not find method android.widget.FrameLayout.jumpDrawablesToCurrentState, referenced from method android.support.v7.internal.widget.ActionBarContainer.jumpDrawablesToCurrentState
02-25 07:20:53.214  15650-15650/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ VFY: unable to resolve virtual method 11735: Landroid/widget/FrameLayout;.jumpDrawablesToCurrentState ()V
02-25 07:20:53.214  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0006
02-25 07:20:53.214  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: dead code 0x0009-0023 in Landroid/support/v7/internal/widget/ActionBarContainer;.jumpDrawablesToCurrentState ()V
02-25 07:20:53.218  15650-15650/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ VFY: unable to find class referenced in signature (Landroid/view/ActionMode;)
02-25 07:20:53.249  15650-15650/pl.seweryn.dariusz.pogodaicm I/dalvikvm﹕ Could not find method android.view.ViewGroup.onRtlPropertiesChanged, referenced from method android.support.v7.widget.Toolbar.onRtlPropertiesChanged
02-25 07:20:53.249  15650-15650/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ VFY: unable to resolve virtual method 11385: Landroid/view/ViewGroup;.onRtlPropertiesChanged (I)V
02-25 07:20:53.249  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0007
02-25 07:20:53.261  15650-15650/pl.seweryn.dariusz.pogodaicm I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations
02-25 07:20:53.269  15650-15650/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ VFY: unable to resolve virtual method 380: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
02-25 07:20:53.269  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
02-25 07:20:53.269  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: dead code 0x0005-0006 in Landroid/support/v7/internal/widget/TintTypedArray;.getChangingConfigurations ()I
02-25 07:20:53.269  15650-15650/pl.seweryn.dariusz.pogodaicm I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.internal.widget.TintTypedArray.getType
02-25 07:20:53.273  15650-15650/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ VFY: unable to resolve virtual method 402: Landroid/content/res/TypedArray;.getType (I)I
02-25 07:20:53.273  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
02-25 07:20:53.273  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: dead code 0x0005-0006 in Landroid/support/v7/internal/widget/TintTypedArray;.getType (I)I
02-25 07:20:53.812  15650-15650/pl.seweryn.dariusz.pogodaicm I/dalvikvm﹕ Could not find method android.view.accessibility.AccessibilityEvent.setSource, referenced from method android.support.v7.internal.widget.ActionBarContextView.onInitializeAccessibilityEvent
02-25 07:20:53.816  15650-15650/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ VFY: unable to resolve virtual method 11490: Landroid/view/accessibility/AccessibilityEvent;.setSource (Landroid/view/View;)V
02-25 07:20:53.816  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x000e
02-25 07:20:53.816  15650-15650/pl.seweryn.dariusz.pogodaicm I/dalvikvm﹕ Could not find method android.support.v7.internal.widget.AbsActionBarView.onInitializeAccessibilityEvent, referenced from method android.support.v7.internal.widget.ActionBarContextView.onInitializeAccessibilityEvent
02-25 07:20:53.816  15650-15650/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ VFY: unable to resolve virtual method 8769: Landroid/support/v7/internal/widget/AbsActionBarView;.onInitializeAccessibilityEvent (Landroid/view/accessibility/AccessibilityEvent;)V
02-25 07:20:53.816  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x002d
02-25 07:20:53.816  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: dead code 0x0011-002b in Landroid/support/v7/internal/widget/ActionBarContextView;.onInitializeAccessibilityEvent (Landroid/view/accessibility/AccessibilityEvent;)V
02-25 07:20:53.816  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: dead code 0x0030-0030 in Landroid/support/v7/internal/widget/ActionBarContextView;.onInitializeAccessibilityEvent (Landroid/view/accessibility/AccessibilityEvent;)V
02-25 07:20:54.187  15650-15650/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ VFY: unable to find class referenced in signature (Landroid/util/Property;)
02-25 07:20:54.191  15650-15650/pl.seweryn.dariusz.pogodaicm I/dalvikvm﹕ Could not find method android.util.Property.set, referenced from method butterknife.ButterKnife.apply
02-25 07:20:54.191  15650-15650/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ VFY: unable to resolve virtual method 10965: Landroid/util/Property;.set (Ljava/lang/Object;Ljava/lang/Object;)V
02-25 07:20:54.191  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x000b
02-25 07:20:54.191  15650-15650/pl.seweryn.dariusz.pogodaicm D/dalvikvm﹕ VFY: dead code 0x000e-0010 in Lbutterknife/ButterKnife;.apply (Ljava/util/List;Landroid/util/Property;Ljava/lang/Object;)V
02-25 07:20:54.273  15650-15650/pl.seweryn.dariusz.pogodaicm D/AndroidRuntime﹕ Shutting down VM
02-25 07:20:54.273  15650-15650/pl.seweryn.dariusz.pogodaicm W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x40015578)
02-25 07:20:54.441  15650-15650/pl.seweryn.dariusz.pogodaicm E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.NoClassDefFoundError: org.bytedeco.javacpp.tesseract$TessBaseAPI
            at pl.seweryn.dariusz.pogodaicm.ActivityMain.onStart(ActivityMain.java:70)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
            at android.app.Activity.performStart(Activity.java:3791)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
            at android.app.ActivityThread.access$1500(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:123)
            at android.app.ActivityThread.main(ActivityThread.java:3687)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
            at dalvik.system.NativeStart.main(Native Method)

This is all when trying to call new tesseract.TessBaseAPI(). I have also tried to call something which looks like a static constructor tesseract.TessBaseAPICreate() but it won't even compile with an error

Error:(71, 18) error: cannot access InfoMapper
class file for org.bytedeco.javacpp.tools.InfoMapper not found

There are also some warnings in gradle console, Cast for instance is shown multiple times:

D:\Darek\Projekty\PogodaICM\mobile\libs\tesseract-3.03-rc1-0.10-20150224.124157-1.jar(org/bytedeco/javacpp/tesseract.class): warning: Cannot find annotation method 'value()' in type 'Cast': class file for org.bytedeco.javacpp.annotation.Cast not found
D:\Darek\Projekty\PogodaICM\mobile\libs\tesseract-3.03-rc1-0.10-20150224.124157-1.jar(org/bytedeco/javacpp/tesseract.class): warning: Cannot find annotation method 'value()' in type 'Cast'
(...)
D:\Darek\Projekty\PogodaICM\mobile\libs\tesseract-3.03-rc1-0.10-20150224.124157-1.jar(org/bytedeco/javacpp/tesseract.class): warning: Cannot find annotation method 'value()' in type 'Namespace': class file for org.bytedeco.javacpp.annotation.Namespace not found
D:\Darek\Projekty\PogodaICM\mobile\libs\tesseract-3.03-rc1-0.10-20150224.124157-1.jar(org/bytedeco/javacpp/tesseract.class): warning: Cannot find annotation method 'value()' in type 'Namespace'
(...)

Thank you for your patience. :)

@saudet
Copy link
Member

saudet commented Feb 25, 2015 via email

@dariuszseweryn
Copy link
Author

I have double checked my build.gradle:

apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    defaultConfig {
        applicationId "pl.seweryn.dariusz.pogodaicm"
        minSdkVersion 8
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        debug {
            minifyEnabled false
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        pickFirst 'META-INF/LICENSE.txt'
        pickFirst 'META-INF/NOTICE.txt'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile fileTree(dir: 'jniLibs', include: ['*.so'])
    wearApp project(':wear')
    compile 'com.android.support:appcompat-v7:21.0.3'
    //    compile 'com.google.android.gms:play-services:6.5.87'
    compile 'com.octo.android.robospice:robospice:1.4.14'
    compile 'com.octo.android.robospice:robospice-okhttp:1.4.14'
    compile 'com.jakewharton:butterknife:6.1.0'

//    compile 'org.bytedeco.javacpp-presets:tesseract:3.03-rc1-0.10'
//    compile 'org.bytedeco.javacpp-presets:tesseract:3.03-rc1-0.10:android-arm'
//    compile 'org.bytedeco.javacpp-presets:leptonica:1.71-0.10:android-arm'
}

minifyEnabled property was previously runProguard. Even then my proguard-rules.pro file contains:

-keep class *.** { *; }
-keepclasseswithmembernames class * {
    native <methods>;
}
-keepattributes
-dontobfuscate
-dontoptimize
-dontshrink

Proguard, even if it would fire (but is disabled) - shouldn't do anything.

@saudet
Copy link
Member

saudet commented Feb 25, 2015

Have you by any chance also neglected to copy javacpp.jar in your libs directory?

@dariuszseweryn
Copy link
Author

Of course I did. Dummy me but I find it quite confusing that I need to include 5 different dependencies just to use tesseract. I should have studied the example .pom file more carefully.

The final gradle dependency list needs to look like this:

    compile 'org.bytedeco:javacpp:0.10'
    compile 'org.bytedeco.javacpp-presets:tesseract:3.03-rc1-0.10'
    compile 'org.bytedeco.javacpp-presets:tesseract:3.03-rc1-0.10:android-arm'
    compile 'org.bytedeco.javacpp-presets:leptonica:1.71-0.10'
    compile 'org.bytedeco.javacpp-presets:leptonica:1.71-0.10:android-arm'

Anyways, BIG thanks for your help and assistance. Finally I was able to create a new TessBaseAPI() without a crash. Maybe this weekend I will try to actually use it.

Last question: any ETA on when a fixed maven release will be in place? (I will be also interested in android-x86)

@saudet
Copy link
Member

saudet commented Feb 26, 2015

Well, there's another guy here who would also like to have a lean version of Tesseract, with the minimum required from Leptonica: #36

But I feel it's Tesseract that should first be enhanced by removing this dependency on Leptonica altogether...

As for the releases, I make one every few months, but if we can get continuous integration running, this wouldn't really matter anymore. Someone here started looking at Travis CI, and it seems to be feasible, but I haven't received any news recently: #22

If you start trying stuff out with Travis CI, please let me know! There are a few other interested people, and I'm sure that as a team we could get something running more easily.

@dariuszseweryn
Copy link
Author

Finally, I have a moment today's evening. What exact info you would like to have?
Some of my friends are using automated Gradle script to automatically send the artifacts to Maven.
The company I work in uses Travis CI on daily basis and when googling I have found a site on which there is a part of code that might be useful.
So if you have any specific questions - you can ask and I will be glad to help (although I don't have much time recently due to personal reasons) - but this is probably not the best place to talk about Travis so you can PM me.

@saudet
Copy link
Member

saudet commented Apr 11, 2015

This should all be fixed with the -0.11 release. Let me know if you still have problems. Thanks for reporting and for testing all this!

BTW, are you still interested in trying things out with Travis CI? It would help a lot, thanks for your interest!

@saudet saudet closed this as completed Apr 11, 2015
@robertoandrade
Copy link

I'm having a similar problem running android-x86 dependencies of ffmpeg on Android, so don't think it relates to the other presets mentioned here. Any suggestions?

Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "av_fopen_utf8" referenced by "libjniavutil.so"...
    at java.lang.Runtime.loadLibrary(Runtime.java:364)
    at java.lang.System.loadLibrary(System.java:526)
    at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)
    at org.bytedeco.javacpp.Loader.load(Loader.java:410)
    at org.bytedeco.javacpp.Loader.load(Loader.java:353)
    at org.bytedeco.javacpp.avutil.<clinit>(avutil.java:10)
    ... 8 more

 Caused by: java.lang.UnsatisfiedLinkError: Couldn't load gnustl_static from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/data/app/xxx-app.apk", zip file "/data/data/xxx.app/code_cache/secondary-dexes/xxx-app.apk.classes2.zip", zip file "/data/data/xxx.app/code_cache/secondary-dexes/xxx-app.apk.classes3.zip", zip file "/data/data/xxx.app/code_cache/secondary-dexes/xxx-app.apk.classes4.zip"],nativeLibraryDirectories=[/data/app-lib/xxx-app, /vendor/lib, /system/lib, /system/lib/arm]]]: findLibrary returned null
    at java.lang.Runtime.loadLibrary(Runtime.java:358)
    at java.lang.System.loadLibrary(System.java:526)
    at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)
    at org.bytedeco.javacpp.Loader.load(Loader.java:401)
    ... 10 more

My dependencies are:

<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacv</artifactId>
    <version>0.10</version>
</dependency>

...

<dependency>
    <groupId>org.bytedeco.javacpp-presets</groupId>
    <artifactId>ffmpeg</artifactId>
    <version>2.5.1-0.10</version>
    <classifier>android-x86</classifier>
</dependency>

<dependency>
    <groupId>org.bytedeco.javacpp-presets</groupId>
    <artifactId>opencv</artifactId>
    <version>2.4.10-0.10</version>
    <classifier>android-x86</classifier>
</dependency>

@saudet
Copy link
Member

saudet commented Apr 30, 2015

@robertoandrade Same issue with version 0.11?

@robertoandrade
Copy link

@saudet same thing.

@robertoandrade
Copy link

Actually after a clean build it went away! Good stuff. Thanks @saudet

@robertoandrade
Copy link

Spoke too early, it was my code path that didn't hit it. Still have the same issue with 0.11 and associated presets.

@robertoandrade
Copy link

I'm wondering if this could have something to do with the distributed presets for x86. Given that all works fine if I'm using the ARM dependencies instead. Could it be that the x86 presets of ffmpeg are not built from the same source as the arm? ie: don't have http://lists.ffmpeg.org/pipermail/ffmpeg-devel/2013-November/150424.html in it?

@saudet
Copy link
Member

saudet commented May 1, 2015 via email

@zkrige
Copy link

zkrige commented Sep 6, 2018

I fixed it on NDK r17 by adding this to my params
-Dplatform.linkpath=sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a

the default android-arm.properties file has platform.linkpath=sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/ which isnt present on my system

@saudet
Copy link
Member

saudet commented Sep 6, 2018

@zkrige Good catch! Please send a pull request.

zkrige added a commit to zkrige/javacpp that referenced this issue Sep 6, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants