![](/img/trans.png)
[英]How do I edit an android studio Java code to work on a newer version of Gradle?
[英]How do I make Gradle compile a source libary that uses newer java version?
我有一个为 Java 7 编译的 gradle 项目,我被告知这个项目无法更新为使用较新版本的 Java,因为在更高版本的 Java 版本中引入了一个错误。
我试图让这个项目使用通过 java 8 编译的库,结果我在运行时遇到了一个主要的次要版本 52 冲突。
有没有办法告诉 gradle 尝试在与 Java 7 兼容的模式下编译这个库?
现在,为了构建它,我在 build.gradle 中使用了这一行:
sourceCompatibility = 1.7
targetCompatibility = 1.7
compile(group: 'com.blah.example', name: 'some-java-8-library', version: '1.0') {
transitive = false
}
您将遇到的问题不是 Gradle 问题,而是 Java 问题。 如果您的原始库 jar 是使用targetCompatibility = 1.8
构建的,您将无法在 Java7 JVM 上使用它。 您将看到版本冲突错误消息。
但是,如果您可以访问库源代码,则可以尝试从targetCompatibility = 1.7
源代码构建,然后将生成的 jar 与 Java7 JVM 一起使用。
这里的复杂之处在于,与早期版本的 java 不同,如果您将 sourceCompatibility 设置为 1.8,java 编译器将强制您使用targetCompatibility=1.8
1.8 - 这意味着,如果您的库源使用任何 1.8 功能,如 Lambdas,您将无法编译目标targetCompatibility = 1.7
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.