2012-12-20 30 views
12

您好,我正在從事OCR(光學字符識別)我從github獲得了一個示例項目。對於此項目,我使用tess-test庫項目並且項目成功並且成功執行,但每當調用TessBaseAPI時,應用程序就不幸停止。 。它顯示以下日誌錯誤無法從loader加載lept findLibrary返回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) 

請給我的問題的解決方案從5天開始,我的應用程序需要它。

我GOOGLE了很多沒有找到任何解決辦法.. 謝謝

+0

[Lib在tesseract中未找到錯誤]的可能重複(http://stackoverflow.com/questions/11516440/lib-not-found-error-in-tesseract) – njzk2

回答

11

確保庫文件「liblept.so」存在無論是在庫/ armeabi庫/ armeabi- v7a,如果它們存在,請使用7Zip/WinRAR打開生成的APK文件,並確保它存在於APK中。

0

Lib not found error in tesseract

的問題重複進行liblept.so(共享庫)文件不能特定庫路徑上找到。沒有看到你的代碼只是假設你的代碼試圖加載共享庫liblept.so,並且該庫在該路徑中不可用。

此外,您使用的代碼要麼在任何lib或內部軟件包目錄中具有該liblept.so文件,要麼必須使用Android-NDK生成(構建)該共享庫。

0

我不知道你是否找到了你的問題的答案,但是我的項目中的libs文件夾被錯誤地命名(是lib而不是libs)。我的問題是由於意外刪除了我的項目,必須通過從手機中提取APK來恢復它。一旦我重命名文件夾,我的問題就解決了。希望有所幫助。

0

PPL,每天掙扎之後。最後得到了解決

苔絲個模塊的build.gradle中添加以下代碼:

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'] 
} 

主要就是請手動天氣所有這些上述代碼中指定的文件路徑存在!

即將出現此問題,請檢查tess-two庫中存在「liblept.so」的位置。 對我來說,它是在/tesstwo/src/main/jniLibs/armeabi-v7a之內。因此,我已經在上面的代碼中製作了jniLibs.srcDirs = ['src/main/jniLibs']。希望能幫助到你 !!

相關問題