2016-05-19 5 views
0

tess-twoを使用してJNIとNDKでAndroidアプリを構築しようとしましたが、このエラーが発生しています。私はAndroid Studo 2.0を使用しています、私はアンドロイドndk r11cをインストールしました。 graleは正常にビルドされますが、APKをビルドできません。Android NDK ndkbuildFailed

これは私のandroid.mkファイルです:

LOCAL_PATH := $(call my-dir) 
include $(CLEAR_VARS) 
IMAGE_PROCESSING_PATH := $(LOCAL_PATH)/../../../../Test/src 
IMAGE_PROCESSING_JNI_PATH := $(LOCAL_PATH)/image_processing 
TESS_TWO_PATH := $(LOCAL_PATH)/../../../../tess-two/tess-two 
LEPTONICA_SRC_PATH := $(TESS_TWO_PATH)/jni/com_googlecode_leptonica_android/src 
include $(IMAGE_PROCESSING_JNI_PATH)/Android.mk 

これは、エラーメッセージは次のとおりです。

http://i.stack.imgur.com/yZATt.png

答えて

0

あなたのGradleビルドログに外観を取った後: ソースを見つけることができません。 NDK_PROJECT_PATHを定義して、プロジェクトパスのルートフォルダに格納する必要があります。

は、私の知る限りでは、あなたのgradle.buildでこれを指定することができます。

android { 
    sourceSets.main.jni.srcDirs = "src" 
} 
+0

私は環境変数にNDK_PROJECT_PATHを追加しましたが、何も変更されませんでした。エラー:( – ranysella

+0

)これをbuild.gradleに追加した後にこのエラーが発生しました: エラー:(11、0)クラス 'java.lang.String'を使用して 'src'オブジェクトをクラス 'java.lang.Iterable' – ranysella

0

あなたは自動NDKビルドを無効にしてみてください。このため 、build.graddleファイルを更新

android { 
// ..... defaultConfig/buildTypes/etc ... 

// SPECIFIC ROUTINE for NATIVE BUILD 
sourceSets.main { 
    jniLibs.srcDir 'src/main/libs' //set .so files location to libs 
    jni.srcDirs = []    //disable automatic ndk-build call 
} 
// call regular ndk-build(.cmd) script from app directory 
task ndkBuild(type: Exec) { 
    if (Os.isFamily(Os.FAMILY_WINDOWS)) { 
     commandLine 'ndk-build.cmd', 'NDK_DEBUG=0', '-C', file('src/main/jni').absolutePath 
    } else { 
     commandLine 'ndk-build', 'NDK_DEBUG=0', '-C', file('src/main/jni').absolutePath 
    } 
} 
tasks.withType(JavaCompile) { 
    compileTask -> compileTask.dependsOn ndkBuild 
} 
} 

あなたが、私はそれを完全なパスを与えることによって、これを解決graddle.properties

android.useDeprecatedNdk=true 
+0

このエラーが発生しました:gradle DSL not found 'main' – ranysella

+0

この例では、ネイティブコードは 'src/main/jni'フォルダの下にあり、libsは 'src/main/libs'の下にコンパイルされています。/libsの場所 – JMC

0

を更新する必要があります。

task ndkBuild(type: Exec,description: 'run ndk-build') { 
if (Os.isFamily(Os.FAMILY_WINDOWS)) { 
    commandLine 'D:\\Application\\android-ndk-r10e\\ndk-build.cmd', '-C', 'D:\\ransel\\Citeks\\app\\src\\main\\jni' 

} else { 
    workingDir 'src/main/jni' 
    commandLine 'D:\\Application\\android-ndk-r10e\\ndk-build', '-C', 'D:\\ransel\\Citeks\\app\\src\\main\\jni' 
} 

}

ありがとうございました:)