Inconsistent JVM-target compatibility detected

QuibblerQuibbler 2025-03-11 约 4 分钟 298 次阅读

Inconsistent JVM-target compatibility detected

日常遇到各种问题,今天升级了组件遇到AS报错:

Inconsistent JVM-target compatibility detected for tasks 'compileDebugJavaWithJavac' (11) and 'kaptGenerateStubsDebugKotlin' (1.8).

这个错误信息表明在构建Android项目时,Java编译器(compileDebugJavaWithJavac)使用的JVM版本与Kotlin注解处理器(kaptGenerateStubsDebugKotlin)使用的JVM版本不一致。具体来说,Java编译器使用的是JVM 11,而Kotlin注解处理器使用的是JVM 1.8。要解决这个问题,需要确保所有组件都使用相同的JVM版本。

1、解决方案一:统一使用JVM 1.8

①修改Gradle配置文件: 打开项目的build.gradle文件,添加以下内容来设置全局的Java版本为1.8:

allprojects {
        tasks.withType(JavaCompile) {
            sourceCompatibility = JavaVersion.VERSION_1_8
            targetCompatibility = JavaVersion.VERSION_1_8
        }
    }

②检查Kotlin插件版本: 确保你使用的Kotlin插件版本支持JVM 1.8。通常情况下,较新的Kotlin版本都会支持JVM 1.8及更高版本。

③同步项目: 修改完配置后,点击Android Studio中的“Sync Now”按钮以应用更改。

2、解决方案二:统一使用JVM 11

如果希望继续使用JVM 11,可以按照以下步骤操作:

①修改Gradle配置文件: 在项目的build.gradle文件中,将Java版本设置为11:

allprojects {
        tasks.withType(JavaCompile) {
            sourceCompatibility = JavaVersion.VERSION_11
            targetCompatibility = JavaVersion.VERSION_11
        }
    }

②更新Kotlin插件: 确保项目使用的Kotlin插件版本支持JVM 11,在build.gradle文件中更新Kotlin插件版本:

buildscript {
        ext.kotlin_version = '1.5.31' // 或者更高版本
        repositories {
            google()
            mavenCentral()
        }
       
        dependencies {
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        }
    }

③同步项目: 修改完配置后,点击Android Studio中的“Sync Now”按钮以应用更改。

通过以上任一方法,能够解决JVM版本不一致的问题。如果问题仍然存在,请检查是否有其他地方指定了不同的JVM版本,并进行相应的调整。

相关推荐

精选
国内开源镜像站点
分享

国内开源镜像站点

国内开源镜像站点开源,(Open Source)全称为开放源代码。开源就是要用户利用源代码在其基础上修改和学习的,但开源系统同样也有版权,同样也受到法律保护。国内的高校和一些企业也建立了开源镜像站点,支持开源。从开源站点上面可以下载很多开源资源(Android源码),上大学的时候就在这些镜像网站上下载Linux发行版、Qt等软件。 清华大学:http://mirrors.tuna.tsinghua

2.4k
置顶 精选
博客七周年:AI 一天完成整体重构
AI

博客七周年:AI 一天完成整体重构

博客从 2019 年国庆用 Xiuno BBS 搭建,到 2026 年国庆整整七年。868 篇文章、53 条评论、6060 个代码块,这次与 AI Agent 结对,一天完成从 PHP 论坛到 Next.js 的整体重构与无损迁移。

23
R8编译问题:Missing classes detected while running R8
分享

R8编译问题:Missing classes detected while running R8

R8编译问题:Missing classes detected while running R8Android R8是一个代码混淆和压缩工具,可以将应用程序的大小和安全性优化。它引入了一些新功能,如成员内省、混淆指针、类内省等。但R8使用起来一直不友好,因为自从使用R8之后编译问题不断。主要还是和混淆相关,经常报错,最近又遇到一个:Missing classes detected while ru

8.4k