任务执行失败':sdk:buildNdk'

时间:2016-02-22 13:07:09

标签: android android-studio android-ndk

我刚刚从存储库中克隆了我的代码,添加ndk路径并运行项目后出现此错误。已经看过许多相关的解决方案,但没有任何效果。

:sdk:buildNdk FAILED

失败:构建因异常而失败。

  • 出了什么问题: 任务:sdk:buildNdk的执行失败。

      

    处理' / home / suneel / Android / Android / adt-bundle-linux-x86_64-20140702 / ndk / ndk-build''完成非零退出值2

  • 尝试: 使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。

BUILD FAILED

这是我的build.gradle文件

android {     compileSdkVersion 22     buildToolsVersion" 23.0.2"

defaultConfig {
    testApplicationId "androidTest.com.xyz"
    testInstrumentationRunner "android.test.InstrumentationTestRunner"
    minSdkVersion 14
    targetSdkVersion 21
    versionCode 1
    versionName "1.0" 
}

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        resources.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
        jni.srcDirs = []
        jniLibs.srcDir 'libs'
    }
    androidTest {
        java.srcDirs = ['src/androidTest']
    }
 }

 lintOptions {
    abortOnError false
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}

testOptions.unitTests.all {
    testLogging {
        events 'passed', 'skipped', 'failed', 'standardOut', 'standardError'
        outputs.upToDateWhen { false }
        showStandardStreams = true
    }
}

}

提前致谢。

1 个答案:

答案 0 :(得分:0)

在build.gradle文件的defaultConfig中设置 multiDexEnabled true

 defaultConfig 
 {   
 testApplicationId "androidTest.com.xyz"
 testInstrumentationRunner "android.test.InstrumentationTestRunner"
 minSdkVersion 14
 targetSdkVersion 21
 versionCode 1
 versionName "1.0" 
 multiDexEnabled true
 }

添加

 sourceSets.main {
    jniLibs.srcDir 'src/main/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', '-C', file('src/main').absolutePath
    } else {
        commandLine 'ndk-build', '-C', file('src/main').absolutePath
    }
}

tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn ndkBuild
}

更多详情请参阅Here