2012-07-17 459 views
5

我正在使用OCR android。從Google搜索獲得樣本並使用android tesseract工作。我有項目爲圖書館和其他項目refered但是,當我運行該項目它顯示在logcat的在tesseract中找不到Lib的錯誤

07-17 10:38:47.092: ERROR/AndroidRuntime(426): FATAL EXCEPTION: main 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426): java.lang.ExceptionInInitializerError 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  at com.imagetotext.ImagetoText.onCreate(ImagetoText.java:21) 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  at android.os.Handler.dispatchMessage(Handler.java:99) 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  at android.os.Looper.loop(Looper.java:123) 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  at java.lang.reflect.Method.invokeNative(Native Method) 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  at java.lang.reflect.Method.invoke(Method.java:521) 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  at dalvik.system.NativeStart.main(Native Method) 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426): Caused by: java.lang.UnsatisfiedLinkError: Library liblept not found 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  at java.lang.Runtime.loadLibrary(Runtime.java:461) 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  at java.lang.System.loadLibrary(System.java:557) 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  at com.googlecode.tesseract.android.TessBaseAPI.<clinit>(TessBaseAPI.java:47) 
    07-17 10:38:47.092: ERROR/AndroidRuntime(426):  ... 14 more 
    07-17 10:38:47.112: WARN/ActivityManager(60): Force finishing activity com.imagetotext/.ImagetoText 

下我覺得有什麼毛病我android.mk。請幫我解決這個錯誤。

+0

看你的圖書館在那裏** liblept.so **文件可用? – user370305 2012-07-17 05:26:56

+0

no那裏沒有lib目錄 – Shalini 2012-07-17 05:28:23

+0

如何獲得.so文件 – Shalini 2012-07-17 05:28:43

回答

5

異常原因線是,

System.loadLibrary(「lept」); 

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

此外您所使用的代碼是具有liblept.so文件中的任何libinternal package directory或者必須產生(生成),通過使用Android的NDK共享庫。

+0

是的,現在只有我意識到。有什麼辦法通過命令來建立.so文件。我使用日食。 – Shalini 2012-07-17 05:31:41

+0

@Shalini您需要使用Android-NDK構建'liblept.so',然後使用Eclipse構建您的應用程序。 – ThomasW 2012-07-17 05:44:08

+0

上午ndk和jni。需要任何良好的referal鏈接來構建.so文件。請 – Shalini 2012-07-17 05:45:02