【发布时间】:2014-05-01 12:05:45
【问题描述】:
我在 Mac 上使用 Android Studio 0.5.7 时出现奇怪错误。我无法使用 gradle 和 ndk-build 编译我的项目。它失败并出现此错误:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':SKG:ndkBuild'.
A problem occurred starting process 'command 'ndk-build''
但是,当我从 CLI 运行 ./gradlew compileArmDebugJava 时,项目编译成功。
android studio 中的错误:
Executing tasks: [:SKG:compileArmDebugJava]
Parallel execution with configuration on demand is an incubating feature.
Relying on packaging to define the extension of the main artifact has been deprecated and is scheduled to be removed in Gradle 2.0
:SKG:preBuild
:SKG:preArmDebugBuild
:SKG:checkArmDebugManifest
:SKG:preArmReleaseBuild
:SKG:preArmv7DebugBuild
:SKG:preArmv7ReleaseBuild
:SKG:preFatDebugBuild
:SKG:preFatReleaseBuild
:SKG:preMipsDebugBuild
:SKG:preMipsReleaseBuild
:SKG:preX86DebugBuild
:SKG:preX86ReleaseBuild
:SKG:prepareComAndroidSupportAppcompatV71910Library UP-TO-DATE
:SKG:prepareArmDebugDependencies
:SKG:compileArmDebugAidl UP-TO-DATE
:SKG:compileArmDebugRenderscript UP-TO-DATE
:SKG:generateArmDebugBuildConfig UP-TO-DATE
:SKG:mergeArmDebugAssets UP-TO-DATE
:SKG:generateArmDebugResValues UP-TO-DATE
:SKG:generateArmDebugResources UP-TO-DATE
:SKG:mergeArmDebugResources UP-TO-DATE
:SKG:processArmDebugManifest UP-TO-DATE
:SKG:processArmDebugResources UP-TO-DATE
:SKG:generateArmDebugSources UP-TO-DATE
:SKG:ndkBuild FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':SKG:ndkBuild'.
> A problem occurred starting process 'command 'ndk-build''
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 16.103 secs
从 cli 成功构建
./gradlew compileArmDebugJava
Parallel execution is an incubating feature.
Relying on packaging to define the extension of the main artifact has been deprecated and is scheduled to be removed in Gradle 2.0
:SKG:preBuild
:SKG:preArmDebugBuild
:SKG:checkArmDebugManifest
:SKG:preArmReleaseBuild
:SKG:preArmv7DebugBuild
:SKG:preArmv7ReleaseBuild
:SKG:preFatDebugBuild
:SKG:preFatReleaseBuild
:SKG:preMipsDebugBuild
:SKG:preMipsReleaseBuild
:SKG:preX86DebugBuild
:SKG:preX86ReleaseBuild
:SKG:prepareComAndroidSupportAppcompatV71910Library UP-TO-DATE
:SKG:prepareArmDebugDependencies
:SKG:compileArmDebugAidl UP-TO-DATE
:SKG:compileArmDebugRenderscript UP-TO-DATE
:SKG:generateArmDebugBuildConfig UP-TO-DATE
:SKG:mergeArmDebugAssets UP-TO-DATE
:SKG:generateArmDebugResValues UP-TO-DATE
:SKG:generateArmDebugResources UP-TO-DATE
:SKG:mergeArmDebugResources UP-TO-DATE
:SKG:processArmDebugManifest UP-TO-DATE
:SKG:processArmDebugResources UP-TO-DATE
:SKG:generateArmDebugSources UP-TO-DATE
:SKG:ndkBuild
make: Entering directory `/...my path.../SKG/src/main/jni'
[armeabi] Install : libcrypto.so => libs/armeabi/libcrypto.so
[armeabi] Install : libdatabase_sqlcipher.so => libs/armeabi/libdatabase_sqlcipher.so
[armeabi] Install : libgenerate.so => libs/armeabi/libgenerate.so
[armeabi] Install : libsqlcipher_android.so => libs/armeabi/libsqlcipher_android.so
[armeabi] Install : libssl.so => libs/armeabi/libssl.so
[armeabi] Install : libstlport_shared.so => libs/armeabi/libstlport_shared.so
make: Leaving directory `/...my path.../src/main/jni'
:SKG:compileArmDebugJava UP-TO-DATE
BUILD SUCCESSFUL
Total time: 16.327 secs
这是我的 build.gradle 文件:
import org.apache.tools.ant.taskdefs.condition.Os
apply plugin: 'android'
android {
compileSdkVersion 16
buildToolsVersion '19.0.3'
defaultConfig {
minSdkVersion 9
targetSdkVersion 16
versionCode 28
versionName "2.2"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
debuggable false
jniDebugBuild false
}
}
sourceSets.main {
jniLibs.srcDir 'src/main/libs'
jni.srcDirs = []
}
defaultConfig {
ndk {
moduleName "generate"
}
}
productFlavors {
x86 {
ndk {
abiFilter "x86"
}
}
mips {
ndk {
abiFilter "mips"
}
}
armv7 {
ndk {
abiFilter "armeabi-v7a"
}
}
arm {
ndk {
abiFilter "armeabi"
}
}
fat
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.+'
}
// 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/jni/').absolutePath
}
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn ndkBuild
}
【问题讨论】:
-
您可以为自己的问题添加答案,而不是将其嵌入问题中,以便其他人更清楚您找到了解决方案。
-
当时,当我弄清楚时,我无法回答我的问题,因为我的分数很低。
-
即使我将文件路径设置为没有尾部斜杠,我也遇到了同样的问题。嗯。
-
你用什么系统?窗户? linux ?
-
对我来说,“libs/armeabi-v7a/libmylibrary.so”文件生成到 /jni/ 文件夹中,这是错误的,它应该在目录上。有没有办法在正确的文件夹中生成它们?
标签: android android-ndk android-studio gradlew