在真机Android 2.1上加载.so文件(Tesseract)时出错
我正在使用 Tesseract 工具开发用于读卡(OCR)的示例扫描活动。
它在模拟器(使用 android 2.2)上运行良好,并快速轻松地从 SD 卡扫描给定卡。 但是当我在真实设备或模拟器上尝试它(使用 android 2.1)时,它会给出以下错误:
10-13 16:48:59.206: DEBUG/dalvikvm(3086): Trying to load lib /data/data/com.scan/lib/liblept.so 0x2fc14960
10-13 16:48:59.196: DEBUG/SntpClient(1814): request time failed: java.net.UnknownHostException: xtra1.gpsonextra.net
10-13 16:48:59.206: DEBUG/dalvikvm(3086): Trying to load lib /data/data/com.scan/lib/liblept.so 0x2fc14960
10-13 16:48:59.236: INFO/dalvikvm(3086): Unable to dlopen(/data/data/com.scan/lib/liblept.so): Cannot load library: link_image[1829]: 1137 could not load needed library 'libjpeg.so' for 'liblept.so' (load_library[1137]: Library 'libjpeg.so' not found)
10-13 16:48:59.236: WARN/dalvikvm(3086): Exception Ljava/lang/UnsatisfiedLinkError; thrown during Lcom/googlecode/tesseract/android/TessBaseAPI;.<clinit>
10-13 16:48:59.236: DEBUG/AndroidRuntime(3086): Shutting down VM
10-13 16:48:59.236: WARN/dalvikvm(3086): threadid=3: thread exiting with uncaught exception (group=0x2aaca450)
10-13 16:48:59.236: INFO/dalvikvm(3086): Unable to dlopen(/data/data/com.scan/lib/liblept.so): Cannot load library: link_image[1829]: 1137 could not load needed library 'libjpeg.so' for 'liblept.so' (load_library[1137]: Library 'libjpeg.so' not found)
10-13 16:48:59.236: WARN/dalvikvm(3086): Exception Ljava/lang/UnsatisfiedLinkError; thrown during Lcom/googlecode/tesseract/android/TessBaseAPI;.<clinit>
10-13 16:48:59.236: DEBUG/AndroidRuntime(3086): Shutting down VM
10-13 16:48:59.236: WARN/dalvikvm(3086): threadid=3: thread exiting with uncaught exception (group=0x2aaca450)
10-13 16:48:59.246: ERROR/AndroidRuntime(3086): Uncaught handler: thread main exiting due to uncaught exception
10-13 16:48:59.246: ERROR/AndroidRuntime(3086): Uncaught handler: thread main exiting due to uncaught exception
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): java.lang.ExceptionInInitializerError
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at com.scan.SAMPLE_SCANActivity.onCreate(SAMPLE_SCANActivity.java:37)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.os.Handler.dispatchMessage(Handler.java:99)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.os.Looper.loop(Looper.java:123)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread.main(ActivityThread.java:4363)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at java.lang.reflect.Method.invokeNative(Native Method)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at java.lang.reflect.Method.invoke(Method.java:521)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:877)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at dalvik.system.NativeStart.main(Native Method)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): Caused by: java.lang.UnsatisfiedLinkError: Library lept not found
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at java.lang.Runtime.loadLibrary(Runtime.java:489)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at java.lang.System.loadLibrary(System.java:557)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at com.googlecode.tesseract.android.TessBaseAPI.<clinit>(TessBaseAPI.java:42)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): ... 14 more
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): java.lang.ExceptionInInitializerError
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at com.scan.SAMPLE_SCANActivity.onCreate(SAMPLE_SCANActivity.java:37)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.os.Handler.dispatchMessage(Handler.java:99)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.os.Looper.loop(Looper.java:123)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread.main(ActivityThread.java:4363)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at java.lang.reflect.Method.invokeNative(Native Method)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at java.lang.reflect.Method.invoke(Method.java:521)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:877)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at dalvik.system.NativeStart.main(Native Method)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): Caused by: java.lang.UnsatisfiedLinkError: Library lept not found
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at java.lang.Runtime.loadLibrary(Runtime.java:489)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at java.lang.System.loadLibrary(System.java:557)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at com.googlecode.tesseract.android.TessBaseAPI.<clinit>(TessBaseAPI.java:42)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): ... 14 more
此库是否适用于 android 2.1 或任何其他问题???
I am developing a sample scan activity for card reading(OCR) using Tesseract tools.
It works fine on emulator (using android 2.2) and scans given card from sdcard fastly and easily.
But when I try it on real device or emulator(Using android 2.1) it gives following error:
10-13 16:48:59.206: DEBUG/dalvikvm(3086): Trying to load lib /data/data/com.scan/lib/liblept.so 0x2fc14960
10-13 16:48:59.196: DEBUG/SntpClient(1814): request time failed: java.net.UnknownHostException: xtra1.gpsonextra.net
10-13 16:48:59.206: DEBUG/dalvikvm(3086): Trying to load lib /data/data/com.scan/lib/liblept.so 0x2fc14960
10-13 16:48:59.236: INFO/dalvikvm(3086): Unable to dlopen(/data/data/com.scan/lib/liblept.so): Cannot load library: link_image[1829]: 1137 could not load needed library 'libjpeg.so' for 'liblept.so' (load_library[1137]: Library 'libjpeg.so' not found)
10-13 16:48:59.236: WARN/dalvikvm(3086): Exception Ljava/lang/UnsatisfiedLinkError; thrown during Lcom/googlecode/tesseract/android/TessBaseAPI;.<clinit>
10-13 16:48:59.236: DEBUG/AndroidRuntime(3086): Shutting down VM
10-13 16:48:59.236: WARN/dalvikvm(3086): threadid=3: thread exiting with uncaught exception (group=0x2aaca450)
10-13 16:48:59.236: INFO/dalvikvm(3086): Unable to dlopen(/data/data/com.scan/lib/liblept.so): Cannot load library: link_image[1829]: 1137 could not load needed library 'libjpeg.so' for 'liblept.so' (load_library[1137]: Library 'libjpeg.so' not found)
10-13 16:48:59.236: WARN/dalvikvm(3086): Exception Ljava/lang/UnsatisfiedLinkError; thrown during Lcom/googlecode/tesseract/android/TessBaseAPI;.<clinit>
10-13 16:48:59.236: DEBUG/AndroidRuntime(3086): Shutting down VM
10-13 16:48:59.236: WARN/dalvikvm(3086): threadid=3: thread exiting with uncaught exception (group=0x2aaca450)
10-13 16:48:59.246: ERROR/AndroidRuntime(3086): Uncaught handler: thread main exiting due to uncaught exception
10-13 16:48:59.246: ERROR/AndroidRuntime(3086): Uncaught handler: thread main exiting due to uncaught exception
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): java.lang.ExceptionInInitializerError
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at com.scan.SAMPLE_SCANActivity.onCreate(SAMPLE_SCANActivity.java:37)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.os.Handler.dispatchMessage(Handler.java:99)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.os.Looper.loop(Looper.java:123)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread.main(ActivityThread.java:4363)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at java.lang.reflect.Method.invokeNative(Native Method)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at java.lang.reflect.Method.invoke(Method.java:521)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:877)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at dalvik.system.NativeStart.main(Native Method)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): Caused by: java.lang.UnsatisfiedLinkError: Library lept not found
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at java.lang.Runtime.loadLibrary(Runtime.java:489)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at java.lang.System.loadLibrary(System.java:557)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at com.googlecode.tesseract.android.TessBaseAPI.<clinit>(TessBaseAPI.java:42)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): ... 14 more
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): java.lang.ExceptionInInitializerError
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at com.scan.SAMPLE_SCANActivity.onCreate(SAMPLE_SCANActivity.java:37)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.os.Handler.dispatchMessage(Handler.java:99)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.os.Looper.loop(Looper.java:123)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at android.app.ActivityThread.main(ActivityThread.java:4363)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at java.lang.reflect.Method.invokeNative(Native Method)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at java.lang.reflect.Method.invoke(Method.java:521)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:877)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at dalvik.system.NativeStart.main(Native Method)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): Caused by: java.lang.UnsatisfiedLinkError: Library lept not found
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at java.lang.Runtime.loadLibrary(Runtime.java:489)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at java.lang.System.loadLibrary(System.java:557)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): at com.googlecode.tesseract.android.TessBaseAPI.<clinit>(TessBaseAPI.java:42)
10-13 16:48:59.256: ERROR/AndroidRuntime(3086): ... 14 more
Does this library works on android 2.1 or any other issue???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
首先,您阅读了所有步骤:--
对于 Windows 或 Ubuntu 并构建 Android 2.2 应用程序:
下载了 ndk & tesseract 工具(svn)项目随 README
使用 ndk 在 debian(vmware) 上构建它
tesseract 工具实际上是一个库,并且有一个 eclipse 。项目,所以只需在使用 ndk 构建 so 后导入该项目并构建它。
将其设置为lib:http://developer.android .com/guide/developing/projects/projects-eclipse.html#SettingUpLibraryProject
现在在同一个工作区中创建一个新的 Android 项目,即您的应用程序。转到属性并引用步骤 3 中的库 (http://developer.android.com/guide/developing/projects/projects-eclipse.html#ReferencingLibraryProject)
6.基于 Android 2.2(最低)构建您的应用: http://code.google.com/p/tesseract-android-tools/issues/detail?id=5#c16
所以这个库不适用于 android 2.1
这个库可以在 android 2.1 上运行吗???。
First of all You read all steps:--
For Windows or Ubuntu and to build Android 2.2 app :
downloaded the ndk & tesseract tools (svn) project with the README
build it on debian(vmware) with the ndk
tesseract tools is actually a library and has a eclipse .project so just import that project after building the so's with ndk and build it.
Set it as lib : http://developer.android.com/guide/developing/projects/projects-eclipse.html#SettingUpLibraryProject
Now in the same workspace create a new android project i.e. your app. Go to properties and reference the library from step 3 (http://developer.android.com/guide/developing/projects/projects-eclipse.html#ReferencingLibraryProject)
6. Build your app based on Android 2.2 (min) : http://code.google.com/p/tesseract-android-tools/issues/detail?id=5#c16
So This library does not works on android 2.1
Does this library works on android 2.1 ???.
我正在开发 OCR 的纯 Java 替代方案:
http://sourceforge.net/projects/javaocr/ ?_test=beta
也许这对你来说是一个选择。
I'm developing pure java alternative for OCR:
http://sourceforge.net/projects/javaocr/?_test=beta
Maybe this could be alternative for you.
不,这个原生库不支持低于 Android 版本 2.2,因为 Google 还在线提供此服务来克服这个问题
no, this native library doesnt support in below Android Version 2.2, as Google also serves this service online to over come this