2017-05-25 52 views
1

我一直在這個問題上停留了2天,並嘗試了所有可能的解決方案。下面是我的build.gradle文件:':app:ndkBuild'執行失敗。進程'命令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') 
} 

我已經嘗試了所有可能的解決方案 - 在build文件夾中刪除的obj文件夾,試圖通過設置sourceSets.main避免自動Android.mk電話,試圖避免compileDebugNdk任務被調用。我也沒有任何cmake.txt文件。我似乎無法克服這個問題。

我已經使用Android Studio 2.3.2和2.1.1,並且問題在兩者中都存在。

任何幫助,將不勝感激。

+0

'「執行失敗‘:應用程序:ndkBuild’進程「命令NDK建造。 cmd'以非零退出值2結束「是嗎?而已? – pskink

+0

@pskink確切的錯誤是'錯誤:任務執行失敗':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') 
} 
相關問題