错误:Gradle:任务执行失败':app:preDexDebug'

时间:2014-05-24 16:51:07

标签: java android intellij-idea gradle build.gradle

我有一个自己创建的jar,来自另一个作为库导入到我的另一个项目中。当我更改该项目中的代码并导出一个新的jar来替换旧的时,我再也无法运行我的应用了。我只收到以下错误:

enter image description here

我尝试删除,添加和添加依赖项,添加为库。似乎没什么用。我也做了干净的构建和重建。

4 个答案:

答案 0 :(得分:25)

过去,当我们的项目 使用不同于编译库的Java版本进行编译时,我们已经看到了这个问题。 {{3 }}仅用于magic number,因此这不是问题所在。问题是java版本(0034.0000 == Java 8)。

最简单的方法是定位Java 6,这可能需要从代码中删除更新的语法。在我们的例子中,项目和库都是我们的,所以我们能够添加以下内容来强制我们需要的Java版本:

Android库

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

android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_6
    }
    ...
}

Java库

对于java库,在“顶级”添加此代码:

apply plugin: 'java'

version '1.8.1'
group   'com.yourcompany.package'

sourceCompatibility = JavaVersion.VERSION_1_6   //these two lines
targetCompatibility = JavaVersion.VERSION_1_6   //are the only ones that matter

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

答案 1 :(得分:1)

对我们来说,这是由Android SDK构建工具版本引起的。在v23.x上遇到问题,但不是v22.x.您需要卸载v23 for cordova以选择v22。

可能是一种症状而不是一种原因,但这可能会在同样的情况下解除某些人的压力。

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

中加入:

sourceCompatibility = JavaVersion.VERSION_X_X
targetCompatibility = JavaVersion.VERSION_X_X

在Android项目gradle文件中,Java库gradle文件为我工作。

对不起,我会有+ 1'但它没有足够高的声誉