2012-12-20 13 views
12

HI sto lavorando su OCR (Riconoscimento ottico dei caratteri) ho ottenuto un progetto di esempio da github.Per questo progetto sto usando il progetto della tess-test library e il progetto si costruisce ed esegue con successo ma ogni volta che viene chiamato TessBaseAPI l'app si ferma sfortunatamente. .e mostra il seguente errore di registroImpossibile caricare il lept dal loader findLibrary ha restituito null?

12-20 18:27:18.791: E/AndroidRuntime(24466): java.lang.ExceptionInInitializerError 
12-20 18:27:18.791: E/AndroidRuntime(24466): at com.datumdroid.android.ocr.simple.SimpleAndroidOCRActivity.onPhotoTaken(SimpleAndroidOCRActivity.java:211) 
12-20 18:27:18.791: E/AndroidRuntime(24466): at com.datumdroid.android.ocr.simple.SimpleAndroidOCRActivity.onActivityResult(SimpleAndroidOCRActivity.java:135) 
12-20 18:27:18.791: E/AndroidRuntime(24466): at android.app.Activity.dispatchActivityResult(Activity.java:5293) 
12-20 18:27:18.791: E/AndroidRuntime(24466): at android.app.ActivityThread.deliverResults(ActivityThread.java:3315) 
12-20 18:27:18.791: E/AndroidRuntime(24466): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3362) 
12-20 18:27:18.791: E/AndroidRuntime(24466): at android.app.ActivityThread.access$1100(ActivityThread.java:141) 
12-20 18:27:18.791: E/AndroidRuntime(24466): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1282) 
12-20 18:27:18.791: E/AndroidRuntime(24466): at android.os.Handler.dispatchMessage(Handler.java:99) 
12-20 18:27:18.791: E/AndroidRuntime(24466): at android.os.Looper.loop(Looper.java:137) 
12-20 18:27:18.791: E/AndroidRuntime(24466): at android.app.ActivityThread.main(ActivityThread.java:5039) 
12-20 18:27:18.791: E/AndroidRuntime(24466): at java.lang.reflect.Method.invokeNative(Native Method) 
12-20 18:27:18.791: E/AndroidRuntime(24466): at java.lang.reflect.Method.invoke(Method.java:511) 
12-20 18:27:18.791: E/AndroidRuntime(24466): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
12-20 18:27:18.791: E/AndroidRuntime(24466): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
12-20 18:27:18.791: E/AndroidRuntime(24466): at dalvik.system.NativeStart.main(Native Method) 
12-20 18:27:18.791: E/AndroidRuntime(24466): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load lept from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.datumdroid.android.ocr.simple-1.apk,libraryPath=/data/app-lib/com.datumdroid.android.ocr.simple-1]: findLibrary returned null 
12-20 18:27:18.791: E/AndroidRuntime(24466): at java.lang.Runtime.loadLibrary(Runtime.java:365) 
12-20 18:27:18.791: E/AndroidRuntime(24466): at java.lang.System.loadLibrary(System.java:535) 
12-20 18:27:18.791: E/AndroidRuntime(24466): at com.googlecode.tesseract.android.TessBaseAPI.<clinit>(TessBaseAPI.java:47) 

Si prega di dare soluzione al mio problema sono stucked da 5 giorni è richiesto nella mia applicazione.

Ho cercato su google un sacco non ha trovato alcuna soluzione .. Thank You

+0

possibile duplicato di [errore non trovato in tesseract] (http://stackoverflow.com/questions/11516440/lib-not-found-error-in-tesseract) – njzk2

risposta

11

Assicurarsi che il file di libreria "liblept.so" esistono sia in libs/armeabi o libs/armeabi- v7a, se esistono, utilizzare 7Zip/WinRAR per aprire il file APK generato e assicurarsi che esista anche nell'APK.

0

duplicato di Lib not found error in tesseract

Il problema è liblept.so del file (libreria condivisa) non può trovare su specifica percorso di libreria. Senza vedere il tuo codice, solo il presupposto è che il tuo codice tenta di caricare la libreria condivisa liblept.so e la libreria non è disponibile in quel percorso.

Anche il codice che si sta utilizzando ha il file liblept.so in qualsiasi directory del pacchetto o lib o si deve generare (compilare) quella libreria condivisa utilizzando Android-NDK.

0

Non sono sicuro di aver trovato la risposta al problema ma il mio era dalla cartella libs in cui il mio progetto è stato erroneamente chiamato (era lib invece di libs). Il mio problema è stato causato dalla cancellazione accidentale del mio progetto e dal suo ripristino estraendo l'APK dal mio telefono. Una volta che ho rinominato la cartella, il mio problema è stato risolto. Spero possa aiutare.

0

Ppl, Dopo aver lottato un giorno .. finalmente la soluzione

In build.gradle di Tess-due modulo di aggiungere il codice qui sotto:

sourceSets.main { 
    manifest.srcFile 'src/main/AndroidManifest.xml' 
    java.srcDirs = ['src/main/java'] 
    resources.srcDirs = ['src/main/java'] 
    res.srcDirs = ['src/main/res'] 
    jni.srcDirs = [] 
    jniLibs.srcDirs = ['src/main/jniLibs'] 
} 

cosa principale è si prega di controllare manualmente tempo tutto coloro esistono percorsi di file specificati nel codice precedente !!

Venendo a questo problema, controllare dove "liblept.so" esiste nella libreria tess-two. Per me era all'interno di /tesstwo/src/main/jniLibs/armeabi-v7a. Quindi ho reso jniLibs.srcDirs = ['src/main/jniLibs'] nel codice sopra. Spero che sia d'aiuto !!

Problemi correlati