繁体   English   中英

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

[英]Error: Gradle: execution failed for task ':app:preDexDebug'

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

在此输入图像描述

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

过去我们看到过这个问题,当时我们的项目是用不同于编译库的Java版本编译的。 神奇的数字仅用于识别类文件,因此这不是问题。 问题是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构建文件的其余部分。

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

可能是一种症状而不是一种原因,但这可能会使某些人处于相同的情况。

虽然您的问题似乎已得到修复,但最终我遇到了类似的错误(同时从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,但没有足够高的声誉

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM