【问题标题】:Running tess-two on phone在手机上运行 tess-two
【发布时间】:2015-02-06 13:05:41
【问题描述】:

我已经下载了tess-two,然后我已经将所有从那个位置导入到我的项目中。编译 *.so 文件并尝试在我的手机上运行它:

    TessBaseAPI baseApi = new TessBaseAPI();
    baseApi.setDebug(true);
    baseApi.init(DATA_PATH, lang);
    baseApi.setImage(bitmap);
    String recognizedText = baseApi.getUTF8Text();
    baseApi.end();

但结果很悲惨:

02-06 15:43:32.095    4072-4072/my.package.name E/AndroidRuntime? FATAL EXCEPTION: main
Process: my.package.name, PID: 4072
java.lang.UnsatisfiedLinkError: Native method not found: my.package.name.tesseract.android.TessBaseAPI.nativeClassInit:()V
        at my.package.name.tesseract.android.TessBaseAPI.nativeClassInit(Native Method)
        at my.package.name.tesseract.android.TessBaseAPI.<clinit>(TessBaseAPI.java:46)
        at my.package.name.activities.SimpleAndroidOCRActivity.onPhotoTaken(SimpleAndroidOCRActivity.java:214)
        at my.package.name.activities.SimpleAndroidOCRActivity.onActivityResult(SimpleAndroidOCRActivity.java:138)
        at android.app.Activity.dispatchActivityResult(Activity.java:5441)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3353)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3400)
        at android.app.ActivityThread.access$1300(ActivityThread.java:141)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1250)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5047)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:806)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
        at dalvik.system.NativeStart.main(Native Method)

谁能帮我解决这个问题?

【问题讨论】:

  • 问题解决了吗?我也有同样的问题……无法解决……
  • @Aspicas 是的,我做错了包
  • 我在文件夹*.so libraries 上有src/main/jniLibs 如何在项目中实现它?你能帮我吗?总是报同样的错误....
  • 将 Java_com_googlecode_tesseract_android_TessBaseAPI_nativeClassInit 重命名为 Java_my_package_name_tesseract_android_TessBaseAPI_nativeClassInit
  • 天哪....我爱你!我修复了它更改包名称....

标签: java android android-ndk ocr tesseract


【解决方案1】:

您好,我认为您没有编译匹配所有 cpu 的 *.so 文件。

请如下编辑 Application.mk

APP_STL := gnustl_static
APP_ABI := armeabi armeabi-v7a x86 mips arm64-v8a x86_64 mips64
APP_OPTIM := 发布
APP_PLATFORM := android-9
APP_CPPFLAGS += -fexceptions -frtti
NDK_TOOLCHAIN_VERSION := 铿锵声

然后编译最好的问候

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多