Android端使用image_gallery_saver时Flutter Gradle报Kotlin JVM Target 21未知错误
Android端使用image_gallery_saver时Flutter Gradle报Kotlin JVM Target 21未知错误
嘿,我之前帮好几个开发者解决过一模一样的问题,咱们先把问题根源理清楚:你遇到的这个报错,本质是image_gallery_saver这个依赖的配置里指定了JVM目标版本为21,但你的项目当前使用的Kotlin Gradle插件版本或者Gradle版本还不支持这么高的JVM版本——毕竟Kotlin正式支持JVM 21是从1.9.0版本才开始的,旧版本根本认不出这个目标。
给你两个靠谱的解决方向,你可以根据自己的项目情况选:
方案一:升级项目的Kotlin和Gradle版本(推荐)
这是最彻底的解决办法,能从根本上兼容依赖的配置。- 打开项目根目录下的
build.gradle文件,把Kotlin版本升级到1.9.0及以上(比如1.9.20),同时搭配兼容的Android Gradle插件版本(比如Kotlin 1.9.20对应Android Gradle插件8.2.0以上):buildscript { ext.kotlin_version = '1.9.20' repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:8.2.0" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } - 同时检查
gradle/wrapper/gradle-wrapper.properties里的Gradle版本,确保是8.2及以上:distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip - 执行
flutter clean清空缓存,再flutter pub get,然后重新构建项目。
- 打开项目根目录下的
方案二:单独覆盖依赖的JVM目标配置(适合暂时不想升级项目的情况)
如果你的项目暂时没法整体升级Kotlin版本,也可以强制给image_gallery_saver的编译任务指定一个当前环境支持的JVM目标版本,比如17:
在app模块的build.gradle文件里添加:tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { kotlinOptions { jvmTarget = JavaVersion.VERSION_17.toString() } }同样,执行
flutter clean和flutter pub get后再构建。
需要注意的是,方案二可能会有潜在的兼容性问题,所以如果项目允许,优先选方案一哦。
内容来源于stack exchange
相关产品推荐
相关产品推荐

