Module dependency leads to Error:Gradle: Execution failed for task ':app:preDexDebug' in Android Studio

Module dependency leads to Error:Gradle: Execution failed for task ':app:preDexDebug' in Android Studio

我试图将模块添加到 Android 项目并使主模块依赖于它,但出现此错误:

Error:Gradle: Execution failed for task ':app:preDexDebug'. com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_40\bin\java.exe'' finished with non-zero exit value 1

我有一个包含主模块 app 的项目,并添加了一个模块 mylib,app 依赖于 mylib。

Android Studio 1.2.2.

settings.gradle:

include ':app', ':mylib'

build.gradle 来自应用程序:

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "21.1.2"

    compileOptions {
        sourceCompatibility org.gradle.api.JavaVersion.VERSION_1_8
        targetCompatibility org.gradle.api.JavaVersion.VERSION_1_8
    }

...

}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile project(':mylib')
}

build.gradle 来自 mylib:

apply plugin: 'java'

sourceCompatibility = org.gradle.api.JavaVersion.VERSION_1_8
targetCompatibility = org.gradle.api.JavaVersion.VERSION_1_8

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
}

JAVA_HOME变量:

JAVA_HOME=C:\Program Files\Java\jdk1.8.0_40

当我将 compile project(':mylib') 添加到 build.gradle 时问题开始了,有时当我重建项目时,但总是当我尝试 运行 它时。 VERSION_1_8 语句没有解决问题。

有什么问题吗?非常感谢任何帮助。

我有同样的问题,我从这个纯 java 单元测试教程中找到了解决方案,它说 Android 当前支持的是 Java 1.7。

Adding pure Java unit tests to an Android project

简而言之,将你的java lib模块设置为1.7,这样你在mylib中的build.gradle可能会这样。

apply plugin: 'java'

dependencies {
    sourceCompatibility = 1.7
    targetCompatibility = 1.7
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

希望对您有所帮助。

我也遇到了同样的问题,我只做了两个简单的步骤,问题就消失了:

1) 构建 -> 清理项目 2) 构建 -> 重建项目