在Windows中的android sdk构建错误中的tess-two导入

时间:2015-06-09 08:42:06

标签: android-studio tess-two

我已经在git下载页面中构建了项目步骤 https://github.com/rmtheis/tess-two#build 我在路径环境中安装了ndk / sdk, 我也在项目local.properties中添加了ndk路径。这是我的项目构建日志,在我将tess-two lib作为externel项目添加到我的

之后
Information:Gradle tasks [clean, :app:compileDebugSources, :app:compileDebugAndroidTestSources, :tesstwo:compileDebugSources, :tesstwo:compileDebugAndroidTestSources]
:app:clean
:tesstwo:clean
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:tesstwo:compileLint
:tesstwo:copyReleaseLint UP-TO-DATE
:tesstwo:mergeReleaseProguardFiles UP-TO-DATE
:tesstwo:preBuild UP-TO-DATE
:tesstwo:preReleaseBuild UP-TO-DATE
:tesstwo:checkReleaseManifest
:tesstwo:prepareReleaseDependencies
:tesstwo:compileReleaseAidl
:tesstwo:compileReleaseRenderscript
:tesstwo:generateReleaseBuildConfig
:tesstwo:generateReleaseAssets UP-TO-DATE
:tesstwo:mergeReleaseAssets
:tesstwo:generateReleaseResValues UP-TO-DATE
:tesstwo:generateReleaseResources
:tesstwo:packageReleaseResources
:tesstwo:processReleaseManifest
:tesstwo:processReleaseResources
:tesstwo:generateReleaseSources
:tesstwo:processReleaseJavaRes UP-TO-DATE
:tesstwo:compileReleaseJava
:tesstwo:packageReleaseJar
:tesstwo:compileReleaseNdk
In file included from C:\Users\Julian\AndroidStudioProjects\Jtess\tesstwo\src\main\jni\com_googlecode_leptonica_android\box.cpp:17:0:
C:\Users\Julian\AndroidStudioProjects\Jtess\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.exe: *** [C:\Users\Julian\AndroidStudioProjects\Jtess\tesstwo\build\intermediates\ndk\release\obj/local/arm64-v8a/objs/tesstwo/C_\Users\Julian\AndroidStudioProjects\Jtess\tesstwo\src\main\jni\com_googlecode_leptonica_android\box.o] Error 1
Error:Execution failed for task ':tesstwo:compileReleaseNdk'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Users\Julian\Downloads\android-ndk-r10d\ndk-build.cmd'' finished with non-zero exit value 2
Information:BUILD FAILED
Information:Total time: 38.843 secs
Information:1 error
Information:0 warnings
Information:See complete output in console

3 个答案:

答案 0 :(得分:9)

编译Tesseract OCR所遵循的步骤仅适用于eclipse,  如果您想在Android Studio上使用它,请按照以下步骤操作

  

1)从这里下载并安装ndk   https://developer.android.com/tools/sdk/ndk/index.html。我有一些   在下面的步骤中遇到麻烦,所以我把它放在“C:\”。

     

2)将该路径添加到系统的环境变量中(例如:   “C:\ android_ndk_r10d”)然后重启,以便您的机器可以找到它。

     

3)从这里下载“tess-two-master”   https://github.com/rmtheis/tess-two,提取它(例如在“C:\”中)   并在“tess”中重命名。

     

4)打开“tess”文件夹,然后打开“tess-two”文件夹。点击一个   按住shift键的同时选择“打开命令”   窗口在这里“。

     

5)写下“ndk-build”并等到它完成(大约20分钟)。

     

6)返回父文件夹,再次选择“eyes-two”文件夹   在按住shift键的同时单击空白区域   打开命令窗口。

     

7)写下“ndk-build”并等待。

     

8)写下“android update project -target 1 -path C:\ tess \ tess-two”。的   当然我假设你的“tess”文件夹位于“C:\”

     

9)写下“蚂蚁释放”。如果IT投诉转到您改变的地方   您在步骤2中执行的系统环境变量并添加新的   名为“JAVA_HOME”的变量,并为您的jdk指定路径(例如:   “C:\ Program Files \ Java \ jdk1.8.0_40”)

     

10)打开一个全新的Android Studio项目并按照这些进行操作   说明   来自https://coderwall.com/p/eurvaq/tesseract-with-andoird-and-gradle   “使用gradle配置tess-two”部分,但为了安全起见,请勿删除   任何文件夹或文件,即使他建议这样做。我遇到了麻烦   使用“libraries \ tess-two”目录中的“build.gradle”文件,但它是   足以改变它的一些价值。就我而言,我有:

     

classpath ‘com.android.tools.build:gradle:0.14.0′” instead of “classpath ‘com.android.tools.build:gradle:0.9.+’

     

     

compileSdkVersion 21
buildToolsVersion “21.0.2”
defaultConfig {
minSdkVersion 15
targetSdkVersion 21
}
     

     

而不是

     

compileSdkVersion 19
buildToolsVersion “19.0.3”

defaultConfig {
minSdkVersion 8
targetSdkVersion 19}
     

”。

     

请注意,最后一步意味着您必须进入“文件 - &gt;项目   结构 - &gt;从左侧子窗口中选择一个模块 - &gt;依赖   (最后一个标签) - &gt;按右侧的绿色“+” - &gt;模块依赖 - &gt;   OK”

     

11)下载此项目   https://github.com/GautamGupta/Simple-Android-OCR并复制并粘贴   你的新项目这些文件中的代码:   “SimpleAndroidOCRActivity.java”,“main.xml”,“strings.xml”。当然   您的文件可能有不同的名称(在我的案例中为“MainActivity.java”,   “activity_main.xml”,“strings.xml”)所以在代码中有些重命名可能   是必要的。同时打开你的“AndroidManifest.xml”并在最后添加   (但在“/ manifest”之前)你在“/ application”和“/ application”之间找到了什么   刚刚下载的“AndroidManifest.xml”中的“/ manifest”(意思是   您必须添加“uses-permissions”和“uses-feature”标记。)

     

12)从这里下载   https://code.google.com/p/tesseract-ocr/downloads/list中的文件   你喜欢的语言(例如:tesseract-ocr-3.02.eng.tar.gz),提取它   并找到文件“yourLanguage.traineddata”(例如:   “eng.traineddata”)。忘了你的Android Studio IDE,打开   项目的文件夹,然后进入“app-&gt; src-&gt; main”。在这里创建一个   新文件夹并将其命名为“assets”。打开它并创建另一个文件夹   名为“tessdata”。把你的.traineddata文件放在那里。

来源:http://gaut.am/making-an-ocr-android-app-using-tesseract/#comment-184181

答案 1 :(得分:0)

在看到答案之前下载最新的&#34; android ndk&#34;并在C:上安装或解压缩,文件夹路径应该是这样的; &#34; C:\机器人-NDK-r10e&#34;

然后将ndk路径(C:\ android-ndk-r10e)添加到环境变量(系统变量)中的路径变量值中,该变量离开了我的&#34;路径&#34;像这样的变量

设置 - &gt;系统 - &gt; Advenced System Settings - &gt;系统变量

Settings --> System --> Advenced System Settings --> System Variables
设置此设置后,您可以按照以下链接中针对Windows操作系统上Android Studio的内容进行操作;

https://stackoverflow.com/a/30882613/1897454

答案 2 :(得分:0)

我有这个问题。首先,您必须在应用的 local.properties 中提供NDK路径。

e.g. ndk.dir=/home/user/bin/android_ndk/android-ndk-r10e

然后在我的 build.gradle 文件中,我有类似的东西来调用ndk build命令。

commandLine 'ndk-build', '-C', file('src/main/jni').absolutePath

我将其更改为

commandLine '/home/user/bin/android_ndk/android-ndk-r10e/ndk-build', '-C', file('src/main/jni').absolutePath

我给出了NDK构建的完整路径。希望它会帮助你。