2017-05-25 9 views
1

私はこの問題を2日間回避し、stackoverflowで指定されたすべての解決策を試しました。以下は私のbuild.gradleファイルです:':app:ndkBuild'の実行に失敗しました。プロセス 'command ndk-build.cmd'がゼロ以外の終了値2で終了しました。

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.3" 
    sourceSets.main.jni.srcDirs = [] 
    sourceSets.main.jniLibs.srcDir 'src/main/libs' 

defaultConfig { 
    applicationId "com.example.anannyauberoi.testingcam" 
    minSdkVersion 15 
    targetSdkVersion 25 
    versionCode 1 
    versionName "1.0" 
    ndk { 
     moduleName "app" 
     cFlags "-std=c++11 -fexceptions" 
     ldLibs "log" 
     stl "gnustl_shared" 
     abiFilter "armeabi-v7a" 
    } 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
sourceSets { main { jni.srcDirs = [] 
    res.srcDirs = ['src/main/res'] 
    jniLibs.srcDirs=['src/main/libs'] 
} } 
//sourceSets.main.jni.srcDirs = [] 
// disable automatic ndk-build call, which ignore our Android.mk 

task ndkBuild(type: Exec, description: 'Compile JNI source via NDK') { 
    commandLine "C:/Users/Anannya-Uberoi/AppData/Local/Android/sdk/ndk-bundle/ndk-build.cmd", 
      'NDK_PROJECT_PATH=build/intermediates/ndk', 
      'NDK_LIBS_OUT=src/main/jniLibs', 
      'APP_BUILD_SCRIPT=src/main/jni/Android.mk', 
      'NDK_APPLICATION_MK=src/main/jni/Application.mk' 
} 
tasks.withType(JavaCompile) { 
    compileTask -> compileTask.dependsOn ndkBuild 
} 

tasks.all { task -> 
    if (task.name.startsWith('compile') && task.name.endsWith('Ndk')) { 
     task.enabled = false 
    } 
} 

// call regular ndk-build(.cmd) script from app directory 

} 
    //Modify the below set of code to the ndk-build.cmd location in your computer. 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:25.3.1' 
    compile project(':openCVLibrary249') 
} 

私はすでに避けるためにしようと、sourceSets.mainを設定して、自動Android.mk呼び出しを避けるためにしようと、ビルドフォルダにOBJフォルダを削除solutions-可能なすべてを試してみましたcompileDebugNdkタスクが呼び出されないようにします。私もcmake.txtファイルがありません。私はこの問題を乗り越えることはできません。

私はAndroid Studio 2.3.2と2.1.1を使用していますが、問題は両方とも持続しています。

ご協力いただければ幸いです。

+0

'「実行に失敗しました『:アプリ:ndkBuild』プロセス「コマンドのNDKビルドを。 cmd 'はゼロ以外の終了値2で終了しました ""それはすべてですか?これ以上何もない? – pskink

+0

@pskink正確なエラーは 'Error:タスク 'の実行に失敗しました:app:cleanNative'です。> 'コマンド' C:\ Users \ Anannya-Uberoi \ AppData \ Local \ Android \ Sdk \ ndk-bundle/ndk-build.cmd ''が非ゼロ終了値2で終了しました。これが唯一のエラーです。 –

+0

コマンドラインから 'gradlew'を実行すると、プロジェクトのトップレベルのフォルダにあります。 – pskink

答えて

0

最新のAndroid Studioを使用する必要があります。2.3.2は問題ありません。それはandroid gradleプラグインのexternalNativeBuildを統合していますので、カスタムのgradleタスクでのトリックは必要ありません。

私は実際にそう私に任意のタイプミスを許してください、以下build.gradleスクリプトをテストできませんでした:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.3" 

defaultConfig { 
    applicationId "com.example.anannyauberoi.testingcam" 
    minSdkVersion 15 
    targetSdkVersion 25 
    versionCode 1 
    versionName "1.0" 
    externalNativeBuild { 
     ndkBuild { 
      targets "app" 
      cppFlags "-std=c++11 -fexceptions" 
      arguments "APP_STL=gnustl_shared" 
      abiFilters "armeabi-v7a" 
     } 
    } 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
sourceSets { main { 
    res.srcDirs = ['src/main/res'] 
} } 

externalNativeBuild { 
    ndkBuild { 
     path "src/main/jni/Android.mk" 
    } 
} 

    //Modify the below set of code to the ndk-build.cmd location in your computer. 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:25.3.1' 
    compile project(':openCVLibrary249') 
} 
関連する問題