Ionic Capacitor Android运行报错:Unknown Kotlin JVM target: 21
解决Ionic Capacitor Android项目「Unknown Kotlin JVM target: 21」错误
问题分析
报错核心原因:当前项目依赖的Kotlin版本(1.9.23)不支持JVM目标版本21,同时项目capacitor.build.gradle中指定的Java编译版本为17,与系统默认的JDK 21存在冲突,最终导致capacitor-inappbrowser模块编译时依赖解析失败。
可行解决方案
方案1:切换项目JDK为17(推荐)
项目已明确配置Java 17作为编译版本,直接匹配对应JDK即可解决冲突:
- 下载安装JDK 17
- 在VS Code中配置项目JDK:
- 打开命令面板(Ctrl+Shift+P)
- 执行「Java: Configure Java Runtime」
- 选择JDK 17作为项目运行时
- 验证:终端执行
java -version,确认输出为Java 17版本
方案2:升级Kotlin版本并适配JDK 21
若需保留系统JDK 21,需升级Kotlin版本并统一编译配置:
- 修改根目录
Build.gradle,添加支持JDK 21的Kotlin插件依赖:buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:8.7.1' classpath 'com.google.gms:google-services:4.4.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.10.20" // 适配JDK21的版本 } } - 更新
capacitor.build.gradle的编译配置:android { compileOptions { sourceCompatibility JavaVersion.VERSION_21 targetCompatibility JavaVersion.VERSION_21 } kotlinOptions { jvmTarget = "21" } } - 刷新依赖并清理编译:
cd android ./gradlew clean build --refresh-dependencies
方案3:强制Gradle使用JDK 17运行
无需切换系统JDK,在项目根目录的gradle.properties中添加如下配置(替换为你本地JDK 17的实际路径):
org.gradle.java.home=C:/Program Files/Java/jdk-17
Gradle将强制使用指定的JDK 17编译项目,避免与系统JDK 21冲突。
验证
完成配置后,执行以下命令测试项目编译是否正常:
cd android ./gradlew assembleDebug
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

