Flutter Android 编译错误修复:JVM Target Compatibility 不一致问题记录

Flutter Android 编译错误修复:JVM Target Compatibility 不一致问题记录

最近在做一个 Flutter TXT 阅读编辑器(适配 Android 14 + 三星设备),在打 release 包时遇到了一个比较典型但容易踩坑的编译错误,记录一下修复过程。


❗ 问题现象

执行构建命令:

bash 复制代码
flutter build apk --release

报错如下:

text 复制代码
Execution failed for task ':receive_sharing_intent:compileReleaseKotlin'.
Inconsistent JVM Target Compatibility Between Java and Kotlin Tasks
compileReleaseJavaWithJavac (1.8)
compileReleaseKotlin (17)

🔍 问题本质

一句话总结:

Java 编译版本是 1.8,但 Kotlin 是 17,JVM 目标版本不一致导致 Gradle 直接失败。

具体冲突来源:

  • App module 使用 Java 17
  • Kotlin target 设为 17
  • 某个插件(receive_sharing_intent)仍然基于 Java 8 兼容环境

🧠 排查结果

关键问题不在主工程,而在插件:

text 复制代码
:receive_sharing_intent

说明:

Flutter 多 module 构建中,插件仍然使用旧 JVM 配置


🛠️ 修复方案


✅ 方案一:关闭 lint 任务(实测可用)

在 android/build.gradle.kts(项目根目录)添加:

kotlin 复制代码
subprojects {
    tasks.configureEach {
        if (name.contains("lint", ignoreCase = true)) {
            enabled = false
        }
    }
}

📌 作用说明

  • 禁用所有 lint 相关任务
  • 避免 lint 触发 JVM target 检查
  • 对 release 构建影响最小

⚠️ 方案二:忽略 JVM 兼容校验(备用)

在 android/gradle.properties 添加:

properties 复制代码
kotlin.jvm.target.validation.mode=IGNORE

👉 直接忽略 Kotlin/Java 版本冲突检查


🚀 方案三:长期推荐(架构优化)

从长期维护角度,建议:

  • 升级或替换 receive_sharing_intent
  • 或直接使用 Flutter 原生 onNewIntent
  • 避免依赖旧 Kotlin 插件

🧾 总结

这次问题本质是:

Flutter 主工程已升级 Java 17,但某个插件仍停留在旧 JVM 兼容环境,导致 Kotlin 编译失败。

通过关闭 lint 任务,可以快速绕过该问题完成构建。


🔚 结束语

Flutter + Android 混合开发中,这类 JVM 版本冲突很常见,尤其在多插件项目里。记录一下,希望能帮到遇到同样问题的开发者。

复制代码
相关推荐
好的佩奇6 小时前
Dart 之集合元素
android·flutter·dart
Easyhood7 小时前
Android 开发入门实践(十四):Compose 副作用入门与四个常用 API
android·开发语言·kotlin·android jetpack·compose
FlightYe9 小时前
音视频修炼之容器与协议(四):RTSP详解
android·linux·ffmpeg·音视频·dash
疯华整猫10 小时前
删掉 LeakCanary 那天,我用 Trae 自己撸了一套:最难的不是分析堆,是决定什么时候 dump
android·人工智能·性能优化
mmsx18 小时前
耳切法切带洞多边形:论文能跑通,真实数据为什么崩
android·kotlin
洞见前行18 小时前
你的 Activity 关了,为什么还活着?Android 内存泄漏从发现、定位到线上治理
android·性能优化·leakcanary
Kapaseker20 小时前
Kotlin 又要加语法糖了:这次轮到 if-else
android·kotlin
恋猫de小郭21 小时前
Flutter 3.50 & Dart 3.14 发布,快来看看有什么更新吧
android·前端·flutter