[英]Build error ,Gradle -> Error:Execution failed for task ':app:preDexDebug'. > org.gradle.process.internal.ExecException:
[英]Error: Gradle: execution failed for task ':app:preDexDebug'
我有一个自己创建的jar从另一个作为库导入到我的另一个项目中。 当我更改该项目中的代码并导出一个新的jar来替换旧的时,我再也无法运行我的应用了。 我只收到以下错误:
我尝试删除,添加和添加为依赖项,添加为库。 似乎没什么用。 我也做了干净的构建和重建。
过去我们看到过这个问题,当时我们的项目是用不同于编译库的Java版本编译的。 神奇的数字仅用于识别类文件,因此这不是问题。 问题是java版本(0034.0000 == Java 8)。
最简单的方法是针对Java 6,这可能需要从代码中删除更新的语法。 在我们的例子中,项目和库都是我们的,所以我们能够添加以下内容来强制我们需要的Java版本:
对于android库,将此代码添加到“android”扩展对象:
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_6
}
...
}
对于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.