Java 错误:梯度:任务';的执行失败:应用程序:preDexDebug';

Java 错误:梯度:任务';的执行失败:应用程序:preDexDebug';,java,android,intellij-idea,gradle,build.gradle,Java,Android,Intellij Idea,Gradle,Build.gradle,我从另一个项目中创建了一个jar,作为库导入到我的另一个项目中。当我在那个项目中更改代码并导出一个新的jar来替换旧的jar时,我就不能再运行我的应用程序了。我只得到以下错误: 我尝试过删除、添加、添加为依赖项、添加为库。似乎什么都不管用。我也做了清洁建设和重建 我们在过去的项目中看到过这个问题,当时我们使用的Java版本与编译库时使用的版本不同。只是习惯了,所以这不是问题所在。问题是java版本(0034.0000==Java8) 最简单的方法是以Java6为目标,这可能需要从代码中删除较新

我从另一个项目中创建了一个jar,作为库导入到我的另一个项目中。当我在那个项目中更改代码并导出一个新的jar来替换旧的jar时,我就不能再运行我的应用程序了。我只得到以下错误:


我尝试过删除、添加、添加为依赖项、添加为库。似乎什么都不管用。我也做了清洁建设和重建

我们在过去的项目中看到过这个问题,当时我们使用的Java版本与编译库时使用的版本不同。只是习惯了,所以这不是问题所在。问题是java版本(0034.0000==Java8)

最简单的方法是以Java6为目标,这可能需要从代码中删除较新的语法。在我们的例子中,项目和库都是我们的,因此我们能够添加以下内容以强制实现我们所需的Java版本:

Android库 对于android库,将以下代码添加到“android”扩展对象:

android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_6
    }
    ...
}
程序库 对于java库,在“顶层”添加以下代码:


注意:最后两行是唯一重要的,我添加其他行只是为了显示这些行在gradle构建文件的其余部分中所属的位置。

虽然您的问题似乎已经解决,但我在这里遇到了类似的错误(在从developer.android.com构建示例时)。如果它对其他人有帮助,我可以通过将JAVA_HOME设置为适当的值来解决它。我的情况是:

export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64
添加:

sourceCompatibility = JavaVersion.VERSION_X_X
targetCompatibility = JavaVersion.VERSION_X_X
在Android项目中,gradle文件和Java库中的gradle文件对我很有用


很抱歉,我本来想要+1,但是我们没有足够高的声誉,这是由Android SDK构建工具版本造成的。在v23.x上有问题,但在v22.x上没有。您需要卸载v23,cordova才能选择v22


可能是症状而不是原因,但这可能会在相同情况下解除某人的锁定。

图片不可见。J2SE 8=52(0x34十六进制),因此我认为有java 8代码。您能确保您正在使用java 7和/或有针对性地使用java 7吗?也许当时情况有所不同
sourceCompatibility = JavaVersion.VERSION_X_X
targetCompatibility = JavaVersion.VERSION_X_X