在tesseract中找不到Lib错误

时间:2012-07-17 05:22:21

标签: android ocr

我正在使用OCR android。从谷歌搜索获得样本并使用android tesseract。我把项目作为库并参考了另一个项目但是,当我运行项目时,它在Logcat中显示以下内容

 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有问题。请帮我修复错误。

2 个答案:

答案 0 :(得分:5)

异常原因是,

System.loadLibrary(“lept”);

问题是 liblept.so (共享库)文件在特定库路径上找不到。在没有看到您的代码的情况下,只是假设您的代码尝试加载共享库 liblept.so ,并且该库在该路径中不可用。

您使用的代码也是在任何libinternal package directory中都有 liblept.so 文件,或者您必须使用以下方法生成(构建)该共享库的 Android的NDK 即可。

答案 1 :(得分:4)

我在最后一年也完成了同样的项目....使用此链接对我帮助最大... Make OCR using Tesseract

希望也会解决你的问题......