【问题标题】:TessBaseAPI cannot resolve symbol tess-two OCR AndroidTessBaseAPI 无法解析符号 tess-two OCR Android
【发布时间】:2015-05-26 23:49:08
【问题描述】:

我正在尝试使用 tess-two 为 OCR 运行演示应用程序,但我遇到了代码问题:

我已按照以下步骤操作:

首先我从https://developer.android.com/tools/sdk/ndk/index.html 下载并安装了 ndk。 而且我配置成功 然后我从这里https://github.com/rmtheis/tess-two 下载它“tess-two-master”并提取它,在那个位置我运行 ndk-build 命令并且它也成功编译。 然后我打开一个全新的 Android Studio 项目并按照“使用 gradle 配置 tess-two”部分中的这些说明https://coderwall.com/p/eurvaq/tesseract-with-andoird-and-gradle 在最后一步中,我进入“文件->项目结构->从左侧子窗口中选择一个模块->依赖项(最后一个选项卡)->按右侧的绿色“+”->模块依赖项->确定”

之后,我下载了这个项目https://github.com/GautamGupta/Simple-Android-OCR,并将以下文件中的代码复制并粘贴到我的新项目中:“SimpleAndroidOCRActivity.java”、“main.xml”、“strings.xml”。当然,我的文件有不同的名称(在我的情况下为“MainActivity.java”、“activity_main.xml”、“strings.xml”),因此有必要在代码中进行一些重命名。 我还打开了我的“AndroidManifest.xml”,并在刚刚下载的“AndroidManifest.xml”中的“/application”和“/manifest”之间添加了最后(但在“/manifest”之前)(这意味着我已经添加了它“uses-permissions”和“uses-feature”标签)。

最后一步我从这里https://code.google.com/p/tesseract-ocr/downloads/list 下载了英文文件。并且在“app--> src--> main”中的项目文件夹中。我在这里创建了一个新文件夹并将其命名为“assets”。在该文件夹中,我创建了另一个名为“tessdata”的文件夹。我把它放在我的 .traineddata 文件中。

然后当我尝试同步它时,出现以下错误: 警告:项目 tess-two 上的依赖项 OCR3:app:unspecified 解析为不支持作为编译依赖项的 APK 存档。文件:C:\Users\jana-PC\AndroidStudioProjects\OCR3\app\build\outputs\apk\app-release-unsigned.apk

当我尝试编译它时,它无法编译,因为它向我显示 TessBaseAPI 无法解析符号的错误:

我在这部分的代码是:

import com.googlecode.tesseract.android.TessBaseAPI;



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

        String recognizedText = baseApi.getUTF8Text();

        baseApi.end(); 

谁有帮助,我将不胜感激!

【问题讨论】:

    标签: java android android-ndk ocr tess-two


    【解决方案1】:

    【讨论】:

    • 是的,我试过了,但是当导入模块(tess-two)并调用它时 import com.googlecode.tesseract.android.TessBaseAPI;然后显示无法解析符号的错误。当我单击 Alt+Enter 时,它显示两个建议 1.“添加对模块 tess-two 的依赖”和 2.将“com.googlecode.tesseract.android.TessBaseAPI”从模块“tess-two”移动到应用程序。我该怎么办!!!??
    【解决方案2】:

    要使用 tess-two api,您必须先将此行添加到您的 android 项目中的 app:gradle 文件中

    编译'com.rmtheis:tess-two:7.0.0'

    添加此行并再次同步项目,我相信您的问题将得到解决。

    【讨论】:

      【解决方案3】:

      Gradle dependency management is what helped me out;

      我在尝试导入 tess-two 时得到未解析的符号;

      在将 tess-2 导入到 android 的过程中,我也遇到了未解析的符号。 发现我必须将 tess-two 作为“Gradle 项目”导入,而不是作为 “Android .aar”或作为“Android 库”;这意味着我必须选择 tess-two 项目的顶级项目级目录作为导入目录,而不是 tess-two 项目中的单个子项目“tess-two”;

      最终确定gradle在tess -two的项目级别使用gradle build file来同步tess-two项目;但是如果你导入 tess-two 子项目,tess-two 的项目级 gradle.build 从未完全 解决 tess-two 项目下的依赖关系;希望这会有所帮助;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-21
        • 1970-01-01
        • 2013-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多