tess-two получает int, но ждет долго

Я попытался восстановить приложение для Android, которое содержит Тесс-два как библиотека. При использовании как есть, я получаю эту ошибку

java.lang.NoSuchFieldError: нет поля с именем = ‘mNativeData’
signature = ‘I’ в классе Lcom / googlecode / tesseract / android / TessBaseAPI;

При отмене фиксации bc931c966f5a05745bd4be5833f551643589982d (private long mNativeData; изменено на private int mNativeData;)

Это тогда работает. Это может быть связано с моим CPU / ABI.

Я действительно не андроид и не ndk эксперт, но для меня это звучит как ошибка. Если код cpp не возвращает long или TessBaseAPI.java должен быть адаптирован для получения int или long.

Спасибо

0

Решение

В коммите, на который вы ссылаетесь, это поле было изменено на «long» в коде Java и JNI для поддержки 64-битных устройств.

Его следует оставить как «длинный» по всем направлениям.

Если вы используете проект, который использует предварительно скомпилированную версию tess.soВы можете откатить код tess-two до более старой версии, которая предшествует фиксации, вызывающей конфликт, например:

git checkout 69b73ef5952c91b4d5d238f76a027a295f58575d

Кроме того, вы можете создавать новые версии файлов * .so, используя инструкции по сборке tess-two, и заменять эти файлы в своем проекте.

1

Другие решения


По вопросам рекламы [email protected]