java - tess-two reciving int 但等待很长时间

标签 java android c++ android-ndk tess-two

我试图重建一个包含 tess-two 作为库的 android 应用程序。按原样使用时,出现此错误

java.lang.NoSuchFieldError: no field with name='mNativeData' signature='I' in class Lcom/googlecode/tesseract/android/TessBaseAPI;

还原提交时 bc931c966f5a05745bd4be5833f551643589982d(private long mNativeData;更改为 private int mNativeData;)

然后就可以了。这可能与我的 CPU/ABI 有关。

我真的不是 android 或 ndk 专家,但这对我来说听起来像是一个错误。如果 cpp 代码不返回 long,或者 TessBaseAPI.java 适应接收 int 或 long。

谢谢

最佳答案

在您提到的提交中,为了支持 64 位设备,该字段在 Java 和 JNI 代码中都被更改为“long”。

应该全线留作“多头”。

如果您使用的项目使用了 tess.so 的预编译版本,您可以将 tess-two 代码回滚到早于导致冲突的提交的旧版本,因为示例:

git checkout 69b73ef5952c91b4d5d238f76a027a295f58575d

或者,您可以使用 tess-two 构建指令构建新版本的 *.so 文件,并在您的项目中替换这些文件。

关于java - tess-two reciving int 但等待很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30411185/

相关文章:

java - 某些设备出现错误 "android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class <unknown>"

Java 泛型 - 类型声明

c++ - Arduino电路没有响应

java - 使用 java、xml 等设计 PDF 模板并在运行时填充数据

java - Tomcat 服务器在 eclipse 中启动失败

android - 使用谷歌浏览器在 Android 上呈现奇怪的 html

android - 将数据从 Activity 发送到 Intentservice

android - Android 6 中的滚动条触摸区域

c++ - fork 子进程

C++ 三角平面相交线