Android Studio NDK构建问题错误:任务执行失败':app:buildNative'

cho*_*uho 3 android build gradle android-ndk

在此输入图像描述

你好.我在Android Studio NDK Build中遇到了麻烦.我没有使用原生图书馆.只是用于库的java类和JNI c或头文件.所以我很困惑如何为我的项目编写gradle文件(saskin库;我正在研究它).请帮帮我〜!

错误信息

错误:任务':app:buildNative'的执行失败.启动进程'命令'C:\ NDK/ndk-build''时出现问题

的build.gradle

apply plugin: 'com.android.application'
android {
    compileSdkVersion 8
    buildToolsVersion "21.1.1"

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

    sourceSets {
        main  {
            jni.srcDirs = []
            //jniLibs.srcDir 'src/main/libs'
        }
    }

    defaultConfig {
        applicationId "com.sasken.player"
        minSdkVersion 8
        targetSdkVersion 8

        ndk {
            moduleName "equalizer"
        }
    }

    // call regular ndk-build(.cmd) script from app directory
    task ndkBuild(type: Exec) {
        commandLine 'ndk-build', '-C', file('src/main/jni').absolutePath
    }

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

dependencies {
}
Run Code Online (Sandbox Code Playgroud)

ph0*_*h0b 18

因为您使用的是Windows,所以应该从ndkBuild任务中调用ndk-build.cmd而不是.ndk-build

要使gradle文件在Windows和unix兼容系统上运行,您可以通过以下方式修改任务:

import org.apache.tools.ant.taskdefs.condition.Os

    // 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
        }
    }
Run Code Online (Sandbox Code Playgroud)

此外,当您直接使用ndk-build时,ndk将在libs文件夹中生成您的库,因此您应该jniLibs.srcDir 'src/main/libs'在gradle文件中取消注释,以便生成的库被考虑在内.