执行flutter run时出现invalid source release:17错误,求解决方案
Flutter构建错误:invalid source release: 17(package_info_plus相关)
报错详情
执行flutter run时触发如下错误:
正在调试模式下在Android SDK built for x86上启动lib\main.dart...
FAILURE: 构建因异常失败。
- 错误原因:任务':package_info_plus:compileDebugJavaWithJavac'执行失败。
error: invalid source release: 17
- 建议操作:
使用--stacktrace选项获取堆栈跟踪。
使用--info或--debug选项获取更多日志输出。
使用--scan选项获取完整洞察。- 获取更多帮助:https://help.gradle.org
构建失败,耗时1分23秒
正在运行Gradle任务'assembleDebug'... 86.6s
错误:Gradle任务assembleDebug执行失败,退出码1
项目关键配置
pubspec.yaml核心片段
environment: sdk: '>=3.2.0 <4.0.0' dependencies: # ...其他依赖项 package_info_plus: ^5.0.1
android/build.gradle核心片段
android { compileSdkVersion 34 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } }
解决办法
方案1:降级package_info_plus版本
package_info_plus: ^5.0.1要求Java 17编译环境,但当前项目配置为Java 1.8。将依赖降级至兼容Java 1.8的版本(如4.x系列):
- 修改pubspec.yaml中的依赖:
dependencies: # ...其他依赖项 package_info_plus: ^4.2.0
- 执行命令更新依赖:
flutter pub get
方案2:升级项目Java编译版本至17
若不想降级依赖,需统一将项目编译环境升级为Java 17:
- 修改android/build.gradle中的编译配置:
android { compileSdkVersion 34 compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } }
- 在项目根目录的
gradle.properties文件中添加/修改配置(无文件则新建):
org.gradle.java.home=/本地JDK17路径 org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true
替换/本地JDK17路径为你电脑上JDK 17的实际安装路径。
方案3:强制子模块继承项目Java版本
部分第三方依赖的gradle配置可能覆盖项目全局设置,可在android/build.gradle中添加强制配置:
在android代码块外添加:
subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { project.android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 // 或根据选择填17 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' // 或根据选择填17 } } } } }
通用收尾步骤
无论选择哪种方案,都执行以下命令清理缓存并重建项目:
flutter clean flutter pub get flutter run
内容的提问来源于stack exchange,提问作者Yogesh Kumawat
相关产品推荐
相关产品推荐

