【发布时间】: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