You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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:
    1. 打开命令面板(Ctrl+Shift+P)
    2. 执行「Java: Configure Java Runtime」
    3. 选择JDK 17作为项目运行时
  • 验证:终端执行java -version,确认输出为Java 17版本

方案2:升级Kotlin版本并适配JDK 21

若需保留系统JDK 21,需升级Kotlin版本并统一编译配置:

  1. 修改根目录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的版本
        }
    }
    
  2. 更新capacitor.build.gradle的编译配置:
    android {
      compileOptions {
          sourceCompatibility JavaVersion.VERSION_21
          targetCompatibility JavaVersion.VERSION_21
      }
      kotlinOptions {
          jvmTarget = "21"
      }
    }
    
  3. 刷新依赖并清理编译:
    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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 19:41:08