错误:任务'ndkBuild'的执行失败。 >进程'命令'Android \ sdk \ ndk-bundle / ndk-build.cmd''以非零退出值2结束

时间:2015-09-07 13:50:18

标签: android android-ndk

我的项目使用Android NDK,我在构建时遇到上述错误。

  • 我安装了最新的Java版本,Android NDK和Android SDK
  • 使用Windows 8和Android Studio 我在local.properties
  • 中添加了SDK和NDK
ndk.dir=C\:\\Users\\Jang\\AppData\\Local\\Android\\sdk\\ndk-bundle
sdk.dir=C\:\\Users\\Jang\\AppData\\Local\\Android\\sdk

这是我的build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "23.0.0"

    defaultConfig {
        applicationId "uk.digitalsquid.netspoofer"
        minSdkVersion 10
        targetSdkVersion 21
    }

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

    sourceSets.main.jni.srcDirs = []
}

dependencies {
    compile 'com.android.support:support-v4:23.0.0'
    compile 'com.google.android.gms:play-services:7.8.0'
    compile 'org.jsoup:jsoup:1.8.3'
    compile project(':androidsupportv4preferencefragment')
}

tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn ndkLibsToJar, ndkBinariesToJar, ndkBinariesToJar16, ndkDataToJar
}

task ndkLibsToJar(type: Zip, dependsOn: 'ndkBuild', description: 'Create a JAR of the native libs') {
    destinationDir new File(buildDir, 'libs')
    baseName 'ndk-libs'
    extension 'jar'
    from(new File(buildDir, 'libs')) {
        include '**/*.so'
    }
    into 'lib/'
}


task ndkBinariesToJar(type: Zip, dependsOn: 'ndkBuild', description: 'Create a JAR of the native binaries') {
    destinationDir new File(buildDir, 'libs')
    baseName 'ndk-binaries'
    extension 'jar'
    from(new File(buildDir, 'libs')) {
        include '**/arp-scan'
        include '**/arpspoof'
        include '**/iptables'
    }
    into 'assets/binaries/android-9'
}

task ndkBinariesToJar16(type: Zip, dependsOn: 'ndkBuild16', description: 'Create a JAR of the native binaries for Android 16+') {
    destinationDir new File(buildDir, 'libs')
    baseName 'ndk-binaries-16'
    extension 'jar'
    from(new File(buildDir, 'android-16/libs')) {
        include '**/arp-scan'
        include '**/arpspoof'
        include '**/iptables'
    }
    into 'assets/binaries/android-16'
}


task ndkDataToJar(type: Zip, dependsOn: 'ndkBuild', description: 'Create a JAR of the native data') {
    destinationDir new File(buildDir, 'libs')
    baseName 'ndk-data'
    extension 'jar'
    from(new File('src/main/jni/arp-scan')) {
        include '**/ieee-iab.txt'
        include '**/ieee-oui.txt'
        include '**/mac-vendor.txt'
    }
    into 'assets/data/'
}


task ndkBuild(type: Exec, description: 'Compile JNI source via NDK') {
    def ndkDir = project.plugins.findPlugin('com.android.application').sdkHandler.getNdkFolder()
    println(ndkDir)
    commandLine "$ndkDir/ndk-build.cmd",
            'NDK_PROJECT_PATH=build',
            'APP_BUILD_SCRIPT=src/main/jni/Android.mk',
            'NDK_APPLICATION_MK=src/main/jni/Application.mk',
            '-j1'
}

task ndkBuild16(type: Exec, description: 'Compile JNI source via NDK for Android 16+') {
    def ndkDir = project.plugins.findPlugin('com.android.application').sdkHandler.getNdkFolder()
    println(ndkDir)
    commandLine "$ndkDir/ndk-build.cmd",
            'NDK_PROJECT_PATH=build/android-16',
            'APP_BUILD_SCRIPT=src/main/jni/Android.mk',
            'NDK_APPLICATION_MK=src/main/jni/Application-16.mk',
            '-j1'
}

这是构建日志:

    Information:Gradle tasks [:androidnetspoof:assembleDebug]
C:\Users\Jang\AppData\Local\Android\sdk\ndk-bundle
C:\Users\Jang\AppData\Local\Android\sdk\ndk-bundle
:androidnetspoof:preBuild
:androidsupportv4preferencefragment:compileLint UP-TO-DATE
:androidnetspoof:preDebugBuild
:androidsupportv4preferencefragment:copyReleaseLint UP-TO-DATE
:androidnetspoof:checkDebugManifest UP-TO-DATE
:androidsupportv4preferencefragment:preBuild
:androidnetspoof:preReleaseBuild UP-TO-DATE
:androidsupportv4preferencefragment:preBuild UP-TO-DATE
:androidsupportv4preferencefragment:preReleaseBuild
:androidnetspoof:generateDebugBuildConfig UP-TO-DATE
:androidsupportv4preferencefragment:checkReleaseManifest
:androidsupportv4preferencefragment:preDebugAndroidTestBuild UP-TO-DATE
:androidsupportv4preferencefragment:preDebugBuild UP-TO-DATE
:androidsupportv4preferencefragment:preDebugUnitTestBuild UP-TO-DATE
:androidsupportv4preferencefragment:preReleaseUnitTestBuild UP-TO-DATE
:androidsupportv4preferencefragment:prepareComAndroidSupportSupportV42300Library UP-TO-DATE
:androidnetspoof:generateDebugAssets UP-TO-DATE
:androidnetspoof:generateDebugResValues UP-TO-DATE
:androidsupportv4preferencefragment:preReleaseBuild UP-TO-DATE
:androidsupportv4preferencefragment:prepareReleaseDependencies
:androidnetspoof:ndkBuild
:androidsupportv4preferencefragment:compileReleaseAidl UP-TO-DATE
:androidsupportv4preferencefragment:compileReleaseRenderscript UP-TO-DATE
:androidsupportv4preferencefragment:generateReleaseBuildConfig UP-TO-DATE
:androidsupportv4preferencefragment:generateReleaseAssets UP-TO-DATE
:androidsupportv4preferencefragment:mergeReleaseAssets UP-TO-DATE
:androidsupportv4preferencefragment:generateReleaseResValues UP-TO-DATE
:androidsupportv4preferencefragment:generateReleaseResources UP-TO-DATE
:androidsupportv4preferencefragment:mergeReleaseResources UP-TO-DATE
:androidsupportv4preferencefragment:processReleaseManifest UP-TO-DATE
:androidsupportv4preferencefragment:processReleaseResources UP-TO-DATE
:androidsupportv4preferencefragment:generateReleaseSources UP-TO-DATE
:androidsupportv4preferencefragment:processReleaseJavaRes UP-TO-DATE
:androidsupportv4preferencefragment:compileReleaseJavaWithJavac UP-TO-DATE
:androidsupportv4preferencefragment:extractReleaseAnnotations UP-TO-DATE
:androidsupportv4preferencefragment:mergeReleaseProguardFiles UP-TO-DATE
:androidsupportv4preferencefragment:packageReleaseJar UP-TO-DATE
:androidsupportv4preferencefragment:compileReleaseNdk UP-TO-DATE
:androidsupportv4preferencefragment:packageReleaseJniLibs UP-TO-DATE
:androidsupportv4preferencefragment:packageReleaseLocalJar UP-TO-DATE
:androidsupportv4preferencefragment:packageReleaseRenderscript UP-TO-DATE
:androidsupportv4preferencefragment:packageReleaseResources UP-TO-DATE
:androidsupportv4preferencefragment:bundleRelease UP-TO-DATE
process_begin: CreateProcess(NULL, realpath obj, ...) failed.
process_begin: CreateProcess(NULL, realpath obj, ...) failed.
Warning:warning: overriding commands for target `/extensions/gen_initext.c'
Warning:warning: ignoring old commands for target `/extensions/gen_initext.c'
process_begin: CreateProcess(NULL, realpath obj, ...) failed.
Warning:warning: overriding commands for target `/extensions/gen_initext.c'
Warning:warning: ignoring old commands for target `/extensions/gen_initext.c'
process_begin: CreateProcess(NULL, realpath obj, ...) failed.
Warning:warning: overriding commands for target `/extensions/gen_initext.c'
Warning:warning: ignoring old commands for target `/extensions/gen_initext.c'
C:\Users\Jang\AppData\Local\Android\sdk\ndk-bundle\build\core\build-binary.mk
Warning:(464) warning: overriding commands for target `build/obj/local/armeabi/objs/ext/extensions/libipt_standard.o'
Warning:(464) warning: ignoring old commands for target `build/obj/local/armeabi/objs/ext/extensions/libipt_standard.o'
Warning:(464) warning: overriding commands for target `build/obj/local/armeabi-v7a/objs/ext/extensions/libipt_standard.o'
Warning:(464) warning: ignoring old commands for target `build/obj/local/armeabi-v7a/objs/ext/extensions/libipt_standard.o'
Warning:(464) warning: overriding commands for target `build/obj/local/mips/objs/ext/extensions/libipt_standard.o'
Warning:(464) warning: ignoring old commands for target `build/obj/local/mips/objs/ext/extensions/libipt_standard.o'
Warning:(464) warning: overriding commands for target `build/obj/local/x86/objs/ext/extensions/libipt_standard.o'
Warning:(464) warning: ignoring old commands for target `build/obj/local/x86/objs/ext/extensions/libipt_standard.o'
[armeabi] Install        : arp-scan => libs/armeabi/arp-scan
[armeabi] Install        : arpspoof => libs/armeabi/arpspoof
mkdir -p /extensions/
The syntax of the command is incorrect.
make.exe: *** [/extensions/gen_initext.c] Error 1
:androidsupportv4preferencefragment:prepareReleaseDependencies FAILED
Error:Execution failed for task ':androidnetspoof:ndkBuild'.
> Process 'command 'C:\Users\Jang\AppData\Local\Android\sdk\ndk-bundle/ndk-build.cmd'' finished with non-zero exit value 2

2 个答案:

答案 0 :(得分:1)

  • 确保将this存储库的内容添加到Components
  • 还要确保将this存储库的内容添加到jni/arp-scan/arp-scan

如果它不起作用,请将 ndkBuild 任务jni/iptables/custom-android-iptables的标志更改为-j1,以确保它不是并行构建的:

commandLine

发布构建日志后编辑

发生此错误是因为在makefile commandLine "$ndkDir/ndk-build.cmd", 'NDK_PROJECT_PATH=build', 'APP_BUILD_SCRIPT=src/main/jni/Android.mk', 'NDK_APPLICATION_MK=src/main/jni/Application.mk', '-j1' 中有一个执行custom-android-iptabes/Android.mk UNIX 的脚本,而我认为,您正在尝试从Windows构建谁是 DOS

您需要做的是将基于UNIX的脚本转换为基于DOS的脚本,例如,在这种情况下,mkdir -p /extensions/

答案 1 :(得分:0)

将环境变量 NDK_TOOLCHAIN_VERSION 设置为 4.9 可以解决问题

enter image description here