java.exe 使用 Facebook SDK 时以非零退出值 2 结束

java.exe finished with non-zero exit value 2 when using Facebook SDK

当我尝试编译我的应用程序时,出现以下错误

Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_60\bin\java.exe'' finished with non-zero exit value 2

如果我摆脱 Facebook Android SDK,它编译没有问题。

我的build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21 //tried 19 and 22 changing targetSdkVersion and buildToolsVersion accordingly
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "..."
        minSdkVersion 15
        targetSdkVersion 21
    }

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

...

}

dependencies {
    ...
    compile 'com.facebook.android:facebook-android-sdk:3.23.1' //tried older versions as well
}

首先,您应该尝试使用 gradle :MODULE:dependencies 列出您的依赖项 检查是否存在库冲突(库相同但版本不同)。在这种情况下,我想您应该从 Facebook SDK 中排除支持库模块。

compile ('com.facebook.android:facebook-android-sdk:3.23.1'){
        exclude group: 'com.google.android', module: 'support-v4'
    }

在使用 Facebook SDK 项目库时,Pawel 的解决方案对我很有效。

但是在我迁移到 Gradle 依赖项 'com.facebook.android:facebook-android-sdk:4.1.1' 后它停止工作了。尝试 rebuild/reopen 项目但没有任何帮助。

这对我有用:

compile ('com.facebook.android:facebook-android-sdk:4.1.1') {
    exclude module: 'support-v4'
}