【问题标题】:Android Studio failed build NDK project non-zero exit value 2Android Studio 构建 NDK 项目非零退出值 2 失败
【发布时间】:2018-03-17 14:13:11
【问题描述】:

我在我的项目中使用带有 ndk 的库,每当我想构建我的项目时,它都会显示此错误

错误:任务 ':tess-two:ndkBuild' 执行失败。 进程 'command 'C:\android-ndk-r14b/ndk-build.cmd'' 以非零退出值 2 结束

我的 build.gradle

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion '25.0.0'

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"

    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

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



    // Call external ndk-build(.cmd) script to build the native code
     task ndkBuild(type: Exec) {
         def ndkBuildExt = Os.isFamily(Os.FAMILY_WINDOWS) ? ".cmd" : ""
         commandLine "${android.ndkDirectory}/ndk-build${ndkBuildExt}",
                 '-C', file('.').absolutePath,
                 '-j', Runtime.runtime.availableProcessors()

        // commandLine 'C:\\android-ndk-r14b', '-C', file('src/main/jni').absotePath
     }

 tasks.withType(JavaCompile) {
         compileTask -> compileTask.dependsOn ndkBuild
     }
     // Cleanup task to remove previously generated binaries
     task ndkClean(type: Exec) {
         def ndkBuildExt = Os.isFamily(Os.FAMILY_WINDOWS) ? ".cmd" : ""
         commandLine "${android.ndkDirectory}/ndk-build${ndkBuildExt}",
                 '-C', file('.').absolutePath, 'clean'
     }

     tasks.withType(Delete) {
         cleanTask -> cleanTask.dependsOn ndkClean
     }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}


// Settings for uploading module AAR to Bintray for library distribution

task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}

task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    options {
        links "http://docs.oracle.com/javase/7/docs/api/"
        linksOffline "http://d.android.com/reference","${android.sdkDirectory}/docs/reference"
    }
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives javadocJar
    archives sourcesJar
}


Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())

我的local.properties

ndk.dir=C:\android-ndk-r14b

sdk.dir=C:\Users\Studio - PC\AppData\Local\Android\Sdk

【问题讨论】:

  • 发布完整日志与仅发布失败消息怎么样?此行上方打印的任何内容都可能表明发生故障的原因?
  • 为什么路径名中有斜杠和反斜杠路径分隔符?

标签: java android android-ndk


【解决方案1】:

使用 'gradlew assDebug --info' 获取更多日志。 您可能会发现问题所在。

【讨论】:

    猜你喜欢
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    相关资源
    最近更新 更多