java - 将模块包含到项目后得到 "unsupported class file version 52.0"

标签 java android android-studio android-gradle-plugin

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

Error:PARSE ERROR: Error:unsupported class file version 52.0

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

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

include ':app', ':my-module'
project(':my-module').projectDir = new File(settingsDir, '../my-module-java')

最佳答案

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

build.gradle - 此构建文件用于模块级别

apply plugin: 'java'

buildscript {
    tasks.withType(JavaCompile) {
        sourceCompatibility = JavaVersion.VERSION_1_7
        targetCompatibility = JavaVersion.VERSION_1_7
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')

    // Your libraries here

}

关于java - 将模块包含到项目后得到 "unsupported class file version 52.0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37902840/

相关文章:

java - 在列表中加载静态图像会减慢滚动速度

android-studio - Android Studio构建错误不会消失

用于获取括号中数字之间的文本的 Java 正则表达式模式

java - 将带有 vector<string> 的 cpp 代码翻译成 Android

java - 声音池 "AudioFlinger could not create track, status: -12"

android - 无法运行Android Test Recorder

java - 如何访问父节点的子节点而不影响同一节点中的其他子节点?

java - RxJava Observable 到 Completable,如何避免 toBlocking()

java - 如何打印以下序列,同时满足这些条件

android - 防止用户关闭通知