如何修复Flutter应用中JVM目标兼容性版本不一致的报错?
解决Flutter Android构建JVM版本不一致问题
以下是需要检查和修改的内容:
1. 强制统一所有模块的JVM目标版本
在项目根目录的android/build.gradle中添加全局配置,确保所有第三方插件模块和主项目使用相同的JVM版本:
subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { android { compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } } } } }
2. 清理构建缓存
旧的构建缓存可能残留冲突配置,执行以下命令彻底清理:
flutter clean rm -rf android/.gradle rm -rf ~/.gradle/caches flutter pub get
之后重新尝试运行项目。
3. 检查第三方插件的本地配置
问题出在receive_sharing_intent插件,可能该插件的内部build.gradle设置了不同的JVM版本。可以找到该插件的Android模块配置文件(路径通常为.pub-cache/hosted/pub.dev/receive_sharing_intent-[版本号]/android/build.gradle),确认其中的compileOptions和kotlinOptions目标版本是否为17,若不一致则修改为和项目一致的版本。
4. 验证Android Studio的JDK配置
打开Android Studio,通过File > Project Structure > SDK Location确认JDK路径指向的是OpenJDK 17(与flutter doctor -v中显示的Java版本一致)。
5. 升级插件版本
检查pubspec.yaml中receive_sharing_intent的版本,尝试升级到最新稳定版,新版本可能已修复JVM版本兼容问题。
内容的提问来源于stack exchange,提问作者Rsevero
相关产品推荐
相关产品推荐

