TessBaseAPI не может разрешить символ Tess-Two OCR Android
Я пытаюсь запустить демо-приложение для распознавания текста, используя tess-two, но у меня проблема с кодом:
Я следую за этими следующими шагами:
Сначала я скачал и установил ndk отсюда https://developer.android.com/tools/sdk/ndk/index.html. И я успешно настроил его. Затем я загружаю его "tess-two-master" отсюда https://github.com/rmtheis/tess-two и извлекаю его, в этом месте я запускаю команду ndk-build, и она также успешно компилируется, Затем я открываю совершенно новый проект Android Studio и следую этим инструкциям https://coderwall.com/p/eurvaq/tesseract-with-andoird-and-gradle из раздела "Настройка tess-two с помощью gradle". На последнем шаге я иду в "Файл -> Структура проекта -> Выберите модуль из левого подокна -> Зависимости (последняя вкладка) -> Нажмите зеленую" + "справа -> Зависимость модуля -> ОК"
После этого я скачал этот проект https://github.com/GautamGupta/Simple-Android-OCR и скопировал и вставил в свой новый проект код в следующих файлах: "SimpleAndroidOCRActivity.java", "main.xml", "strings. XML". Конечно, мои файлы имели разные имена (в моем случае "MainActivity.java", "activity_main.xml", "strings.xml"), поэтому было необходимо переименовать код. Я также открыл свой "AndroidManifest.xml" и добавляю в конце (но перед "/ manifest") между "/ application" и "/ manifest" в только что загруженном "AndroidManifest.xml" (это означает, что я добавил его тэг "Использования-разрешения" и "Использование-функции").
Последний шаг, который я скачал отсюда https://code.google.com/p/tesseract-ocr/downloads/list файл на английском языке. и в папке моего проекта точно в "app -> src -> main". Я создал здесь новую папку и назову ее "активами". Внутри этой папки я создал еще одну папку с именем "tessdata". и я положил туда мой файл.traineddata.
Затем, когда я пытаюсь синхронизировать его, у меня появляется следующая ошибка: Предупреждение: Зависимость OCR3: приложение: не указано в проекте tess-two преобразуется в архив APK, который не поддерживается как зависимость компиляции. Файл: C:\Users\jana-PC\AndroidStudioProjects\OCR3\app\build\output \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();
Кто-нибудь с некоторой помощью, я был бы очень признателен!
3 ответа
Вы пробовали это решение: https://coderwall.com/p/eurvaq/tesseract-with-andoird-and-gradle
Чтобы использовать API Tess-Two, вы должны сначала добавить эту строку в ваше приложение: файл gradle в вашем проекте Android
скомпилируйте 'com.rmtheis:tess-two:7.0.0'
Добавьте эту строку и снова синхронизируйте проект, и я уверен, что ваши проблемы будут решены.
Мне помогло управление зависимостями Gradle;
Я получал неразрешенные символы при попытке импортировать tess-two;
У меня также были неразрешенные символы при импорте tess-two на андроид. Выяснилось, что мне пришлось импортировать tess-two как «проект Gradle», а не как «Android .aar» или как «библиотеку Android»; Это означало, что мне пришлось выбрать каталог верхнего уровня проекта tess-two в качестве каталога импорта, а не отдельный подпроект «tess-two» в проекте tess-two;
Наконец, определено, что gradle синхронизирует проект tess-two с помощью файла сборки gradle на уровне проекта tess -two; Но если вы импортируете подпроекты tess-two, gradle.build уровня проекта tess-two никогда полностью не разрешает зависимости, лежащие в основе проекта tess-two; Надеюсь это поможет;