我有关于NDK-Build的问题。那是失败的信息:
Error:Execution failed for task ':app:ndkBuild'.
> A problem occurred starting process 'command 'ndk-build.cmd''
我测试了一些修复程序,但它无法正常工作。我不知道我能做些什么。我希望你能帮我解决问题:
这是build.gradle:
import org.apache.tools.ant.taskdefs.condition.Os
apply plugin: 'com.android.application'
android {
compileSdkVersion 14
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "teaonly.droideye"
targetSdkVersion 14
ndk {
moduleName "MediaEncoder"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
sourceSets.main {
jni.srcDirs = [] // This prevents the auto generation of Android.mk
jniLibs.srcDirs = ['src/main/jniLibs']
}
//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/jniLibs').absolutePath
} else {
commandLine 'ndk-build', '-C', file('src/main/jniLibs').absolutePath
}
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn ndkBuild
}
}
dependencies {
compile files('libs/java_websocket.jar')
}
这是我的local.properties:
ndk.dir=C\:\\Users\\Markus\\AppData\\Local\\Android\\Sdk\\ndk-bundle
sdk.dir=C\:\\Users\\Markus\\AppData\\Local\\Android\\Sdk
这是我的项目:
答案 0 :(得分:0)
我认为您的问题是您没有指定Gradle任务的工作目录。即使它正确设置了ndk.dir设置,事实是commandLine将默认为项目目录,其中没有'ndk-build.cmd'文件。因此,只需在您的任务中添加以下行:
workingDir '/Users/Markus/AppData/Local/Android/Sdk/ndk-bundle'
您可以在Gradle文档的以下位置阅读有关此命令以及commandLine的其他Gradle选项的更多信息:
https://docs.gradle.org/current/dsl/org.gradle.api.tasks.Exec.html