Java 得到;不支持的类文件版本52.0“;在将模块包括到项目中之后

Java 得到;不支持的类文件版本52.0“;在将模块包括到项目中之后,java,android,android-studio,android-gradle-plugin,Java,Android,Android Studio,Android Gradle Plugin,在Android Studio中创建了一个空项目,并包含了一个纯java模块,该模块可以自行编译并完美工作,在该模块中的每个类上,我都会遇到以下错误: 错误:分析错误:错误:不支持的类文件版本52.0 我尝试使用嵌入式JDK和我系统上的JDK 8(1.8.091)运行该项目,结果是一样的 请注意,我没有将模块作为.jar库包含在内,而是使用以下指令导入的源代码: include ':app', ':my-module' project(':my-module').projectDir = new

在Android Studio中创建了一个空项目,并包含了一个纯java模块,该模块可以自行编译并完美工作,在该模块中的每个类上,我都会遇到以下错误:

错误:分析错误:错误:不支持的类文件版本52.0

我尝试使用嵌入式JDK和我系统上的JDK 8(1.8.091)运行该项目,结果是一样的

请注意,我没有将模块作为
.jar
库包含在内,而是使用以下指令导入的源代码:

include ':app', ':my-module'
project(':my-module').projectDir = new File(settingsDir, '../my-module-java')
我知道,我指定了目标版本1_7

报告(部分)说

根据JVM规范,JavaSE8的类文件版本为52.0。Java SE 8编译器生成的52.0版类文件不能在早期版本的Java SE中使用


以Java7为目标并重新编译

明白了,错误是因为我没有在模块本身中指定兼容性选项。这意味着,如果您已经安装并使用JDK 8,并且您的android项目使用Java 1.7(在android SDK 23及以下版本中默认为Java 1.7),并且包含一个模块,但没有使用Java 1.7的任何规范,然后,该模块将使用JDK 8使用Java 1.8语法进行编译,会出现错误,因为它们不兼容,并且使用Java 1.7的编译器无法解析针对Java 1.8且版本为52的类文件

build.gradle-此生成文件用于模块级


我在构建项目时也遇到过类似的错误

Error:PARSE ERROR
Error:unsupported class file version 52.0
在从Java
1.8切换到Java
1.7之后,我遇到了这些错误。我的项目包括几个库,1个应用程序模块,3个Android库模块和2个Java库模块。我没有改变Android库中的任何内容,但在Java库的
build.gradle
文件的依赖项中添加了以下行

sourceCompatibility = 1.7
targetCompatibility = 1.7

它为我解决了问题。解析错误主要是因为Java 1.8类无法解析为Java 1.7类。

在将Android Studio从2.1更新到2.2.2后,我第一次遇到了这个错误,我感到困惑,因为我的系统只安装了Java 1.7,或者我是这么认为的。事实证明,Android 2.2.2安装了自己的Java 1.8 JRE(C:\Program Files\Android\Android Studio\JRE),因此需要在build.gradle中为纯Java库指定
sourceCompatibility
targetCompatibility
,如上所述

apply plugin: 'java'

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    sourceCompatibility = 1.7
    targetCompatibility = 1.7
}

我认为android还不支持Java 8。@ElliottFrisch我知道,我指定了目标版本
1_7
@Sébastien也许你可以发布这两个模块的build.gradle文件,让我们帮你检查一下。我没有应用“Java”插件,但仍然有相同的例外,这为我解决了这个问题!我从jre1.8.0_121切换到jre7,我的应用程序终于编译好了。我不得不省略
apply plugin:'java'
,以避免@JaimeMontoya,因为新的jre是向后兼容的,所以你不应该切换到旧的jre。只需使用1.7的
-target
选项重新编译源代码。@happing\u squid有趣。我不知道。你不能为android项目应用java插件知道吗?这是我的android项目使用的纯java库
apply plugin: 'java'

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    sourceCompatibility = 1.7
    targetCompatibility = 1.7
}