You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行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系列):

  1. 修改pubspec.yaml中的依赖:
dependencies:
  # ...其他依赖项
  package_info_plus: ^4.2.0
  1. 执行命令更新依赖:
flutter pub get

方案2:升级项目Java编译版本至17

若不想降级依赖,需统一将项目编译环境升级为Java 17:

  1. 修改android/build.gradle中的编译配置:
android {
    compileSdkVersion 34
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = '17'
    }
}
  1. 在项目根目录的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 11:01:04