Flutter安卓Debug模式报错invalid source release:17求解决
解决Flutter安卓调试时
invalid source release: 17错误 问题根源
你遇到的错误是因为device_info_plus: ^10.0.1版本要求使用Java 17编译,但你的项目配置为Java 8,同时Flutter 3.3.2版本较旧,和高版本插件存在兼容性冲突。
解决方案
方案一:降级device_info_plus到兼容版本
device_info_plus从v10.x开始要求Java 17,可降级到v9.x系列(兼容Java 8和Flutter 3.3.2):
- 修改
pubspec.yaml中的依赖:
device_info_plus: ^9.1.2
- 执行命令更新依赖:
flutter pub get
- 重新运行项目。
方案二:升级项目Java版本至17
调整安卓项目配置以支持Java 17:
- 修改
android/app/build.gradle中的编译配置:
android { // 其他配置... compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } // 其他配置... }
- 更新项目级
android/build.gradle的Gradle插件和Kotlin版本:
buildscript { ext.kotlin_version = '1.7.10' repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.2.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
- 修改
gradle/wrapper/gradle-wrapper.properties的Gradle版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip
- 确保本地安装了Java 17(可通过Android Studio的SDK Manager下载OpenJDK 17)。
方案三:升级Flutter到新版本
Flutter 3.3.2版本较旧,高版本插件通常适配新Flutter版本,升级后可自动解决大部分兼容性问题:
- 执行升级命令:
flutter upgrade
- 升级完成后重新运行项目,若有配置提示按指引调整即可。
注意事项
- 除
device_info_plus外,你依赖的firebase_core:^2.27.2、permission_handler:^11.3.1等高版本插件也可能和Flutter 3.3.2存在兼容性问题,升级Flutter是更彻底的解决方式。 - 降级插件时,可查看插件pub.dev页面的版本兼容性说明,确保版本匹配。
内容的提问来源于stack exchange,提问作者RishV
相关产品推荐
相关产品推荐

