使用适用于 ANDROID 的 tesseract OCR 引擎示例项目时应用程序崩溃
Posted
技术标签:
【中文标题】使用适用于 ANDROID 的 tesseract OCR 引擎示例项目时应用程序崩溃【英文标题】:Application crashes when using tesseract OCR Engine sample project for ANDROID 【发布时间】:2014-05-25 17:14:07 【问题描述】:您好,我正在运行 android tesseract 示例项目,方法是将 tess-two 添加为库项目作为该项目的先决条件 我还把谷歌翻译器api密钥和必应翻译器api密钥放在这个项目中
但是当我要运行这个项目时,它会在 logcat 中显示以下错误 你能帮我摆脱这种情况吗 提前谢谢
FATAL EXCEPTION: main
E/AndroidRuntime(20521): java.lang.ExceptionInInitializerError
E/AndroidRuntime(20521): at edu.sfsu.cs.orange.ocr.CaptureActivity.initOcrEngine(CaptureActivity.java:711)
E/AndroidRuntime(20521): at edu.sfsu.cs.orange.ocr.CaptureActivity.onResume(CaptureActivity.java:368)
E/AndroidRuntime(20521): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1153)
E/AndroidRuntime(20521): at android.app.Activity.performResume(Activity.java:3858)
E/AndroidRuntime(20521): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2122)
E/AndroidRuntime(20521): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2147)
E/AndroidRuntime(20521): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1680)
E/AndroidRuntime(20521): at android.app.ActivityThread.access$1500(ActivityThread.java:121)
E/AndroidRuntime(20521): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943)
E/AndroidRuntime(20521): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(20521): at android.os.Looper.loop(Looper.java:130)
E/AndroidRuntime(20521): at android.app.ActivityThread.main(ActivityThread.java:3770)
E/AndroidRuntime(20521): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(20521): at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(20521): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
E/AndroidRuntime(20521): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:670)
E/AndroidRuntime(20521): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(20521): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load lept: findLibrary returned null
E/AndroidRuntime(20521): at java.lang.Runtime.loadLibrary(Runtime.java:429)
E/AndroidRuntime(20521): at java.lang.System.loadLibrary(System.java:554)
E/AndroidRuntime(20521): at com.googlecode.tesseract.android.TessBaseAPI.<clinit>(TessBaseAPI.java:44)
E/AndroidRuntime(20521): ... 17 more
【问题讨论】:
【参考方案1】:您的问题在于:
Caused by: java.lang.UnsatisfiedLinkError: Couldn't load lept: findLibrary returned null
您需要在项目中包含“lept”jar 和原生 c++ 文件,并在构建路径中引用它们。
另外,看看best OCR (Optical character recognition) example in android
【讨论】:
嗨@ammarCse 你能描述/你能给出步骤/教程如何将它添加到我的项目中 @VikrantAlekar 我很乐意帮助你。你看过github.com/rmtheis/android-ocr 和github.com/rmtheis/tess-two 开始了吗? 是的,我浏览了您在上面评论中提到的链接,我查看了它,我下载了 NDK,我正确配置了它,但仍然面临同样的问题:( lept jar 你能提供我可以得到lept jar文件的链接吗 google上有这样的文件:(我对这个概念真的很陌生:( 你好@VikrantAlekar,对不起,我使用Android OCR 已经一年了,所以我不记得你是否特别需要'lept' jar。但是,leptonica 文件的来源位于github.com/rmtheis/tess-two/tree/master/tess-two/jni/…。另外,当我当时从事该项目时,我发现本教程很有帮助:kurup87.blogspot.com/2012/03/…以上是关于使用适用于 ANDROID 的 tesseract OCR 引擎示例项目时应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章
iPhone iso的Tesseract限制?适用于 ios 的任何其他 OCR 引擎