Android Studio 项目中缺少 allheaders.h

Mic*_*ael 5 android tesseract leptonica android-studio

我正在遵循这个 tesseract 教程中的教程,并且一切都很顺利,直到我实际运行 Java 代码。当我尝试时

new TessBaseApi();
Run Code Online (Sandbox Code Playgroud)

它抛出以下错误

Error Code: 2
Output:
In file included from tesstwo/src/main/jni/com_googlecode_leptonica_android/box.cpp:17:0:
tesstwo/src/main/jni/com_googlecode_leptonica_android/common.h:22:24: fatal error: allheaders.h: No such file or directory
 #include <allheaders.h>
           ^
compilation terminated.
make: *** 
Run Code Online (Sandbox Code Playgroud)

我已经调查/jni/com_googlecode_leptonica_android/src/src并找到了allheaders.h那里的文件。我有一种感觉,我的道路是错误的,但我几乎尝试了一切,但没有成功。有什么问题吗?

小智 1

我在 Android Studio 中也遇到了这个问题。经过更多谷歌搜索后,我发现了这个问题。 https://code.google.com/p/android/issues/detail?id=74132

显然,NDK 插件会生成自己的 Android.mk 文件并忽略任何现有文件,因此推荐的方法是运行 ndk-build 来生成本机 .so 文件。

当我在 tess-two 目录中使用 ndk-build 时,它编译得很好并且创建了 .so 文件。

这篇文章描述了如何在 gradle 和 android studio 中包含本机库:使用 Android Gradle 插件 0.7.3 在项目中添加预构建的 .so 文件