很难为android编译te​​ss-two

时间:2014-11-30 19:56:55

标签: android android-studio android-ndk ocr tess-two

我正在尝试使用android studio从tess-two项目构建两个眼睛。我做了 NDK建造 android ... 蚂蚁释放 用于tess-two和eye-two的东西,导入的眼睛 - 两个,配置ndk.dir路径和所有,但是,在构建时我收到以下错误消息:

allheaders.h: No such file or directory

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':tesstwo:compileReleaseNdk'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
/home/italomaia/.apps/android-ndk-r10c/ndk-build NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/home/italomaia/workspace/eyes-two/tesstwo/build/intermediates/ndk/release/Android.mk APP_PLATFORM=android-8 NDK_OUT=/home/italomaia/workspace/eyes-two/tesstwo/build/intermediates/ndk/release/obj NDK_LIBS_OUT=/home/italomaia/workspace/eyes-two/tesstwo/build/intermediates/ndk/release/lib APP_ABI=all
  Error Code:
    2
  Output:
    In file included from /home/italomaia/workspace/eyes-two/tesstwo/src/main/jni/com_googlecode_leptonica_android/writefile.cpp:17:0:
/home/italomaia/workspace/eyes-two/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: *** [$HOME/workspace/eyes-two/tesstwo/build/intermediates/ndk/release/obj/local/arm64-v8a/objs/tesstwo/$HOME/workspace/eyes-two/tesstwo/src/main/jni/com_googlecode_leptonica_android/writefile.o] Error 1


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

1 个答案:

答案 0 :(得分:1)

您应该使用此处的说明进行构建。 https://github.com/rmtheis/tess-two/tree/master 我不得不稍微修改说明。 要构建最新的tess-two代码,请在终端中运行以下命令: git clone git://github.com/rmtheis/tess-two tess cd tess cd tess-two ndk-build android update project --path . --target 13 为了构建眼睛 - 两个,另外运行以下: cd .. cd eyes-two ndk-build android update project --path . --target 13 从那里我打开了android studio,File-&gt; import Sample并导入了Hello jni示例。之后在android studio中设置和编译,我做了File-&gt; New-&gt;导入模块指向它选择所有默认值的tess-two目录。在那一点上,由于gradle问题,它给了我错误。所以我为tess-two模块创建了这个gradle文件:

apply plugin: 'com.android.model.library'

model {
    android {
        compileSdkVersion = 23
        buildToolsVersion = "23.0.0"

        defaultConfig.with {
            minSdkVersion.apiLevel = 15
            targetSdkVersion.apiLevel = 23
        }
    }


    compileOptions.with {
        sourceCompatibility=JavaVersion.VERSION_1_7
        targetCompatibility=JavaVersion.VERSION_1_7
    }

    android.buildTypes {
        release {
            minifyEnabled = false
            proguardFiles  += file('proguard-rules.txt')
        }
    }
    android.productFlavors {
        // for detailed abiFilter descriptions, refer to "Supported ABIs" @
        // https://developer.android.com/ndk/guides/abis.html#sa
        create("arm") {
            ndk.abiFilters += "armeabi"
        }
        create("arm7") {
            ndk.abiFilters += "armeabi-v7a"
        }
        create("arm8") {
            ndk.abiFilters += "arm64-v8a"
        }
        create("x86") {
            ndk.abiFilters += "x86"
        }
        create("x86-64") {
            ndk.abiFilters += "x86_64"
        }
        create("mips") {
            ndk.abiFilters += "mips"
        }
        create("mips-64") {
            ndk.abiFilters += "mips64"
        }
        // To include all cpu architectures, leaves abiFilters empty
        create("all")
    }

}

然后它成功构建