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

tess-two reciving int but waiting for long

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

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 代码不是 return 长整型,或者 TessBaseAPI.java 适合接收 int 或长整型。

谢谢

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

它应该全部保留为 "long"。

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

git checkout 69b73ef5952c91b4d5d238f76a027a295f58575d

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