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

Flutter集成google_sign_in遇:google_sign_in_android:compileDebugJavaWithJavac构建错误

解决Flutter集成google_sign_in时的JdkImageTransform构建错误

可行解决方案

1. 强制Gradle使用Android Studio内置JBR

在项目的android/gradle.properties文件末尾添加以下配置(注意Windows路径需用双反斜杠):

org.gradle.java.home=C:\\Program Files\\Android\\Android Studio\\jbr

也可通过Android Studio图形界面设置:

  • 打开File > Settings > Build, Execution, Deployment > Build Tools > Gradle
  • 在Gradle JDK下拉菜单中选择Android Studio自带的JBR版本(通常为17或21,与你的Android Studio版本匹配)

2. 降级Java到兼容LTS版本(如Java 17)

确保Flutter和Gradle都指向Java 17:

  • 修改系统环境变量JAVA_HOME为Java 17的安装目录
  • 执行flutter doctor -v检查输出中的Java路径是否正确
  • 依次执行flutter clean、flutter pub get后重新构建

3. 针对google_sign_in_android模块调整编译配置

在项目的android/build.gradle文件中添加子项目配置:

subprojects {
    if (name == 'google_sign_in_android') {
        tasks.withType(JavaCompile) {
            options.fork = true
            options.forkOptions.jvmArgs += ['--add-modules', 'java.base']
        }
    }
}

4. 清理Gradle缓存

  • 删除本地Gradle缓存目录:C:\Users\User\.gradle\caches
  • 执行flutter clean清理Flutter项目缓存
  • 重新执行flutter pub get后尝试构建

问题原因

Java 22属于较新的非LTS版本,与Gradle的JdkImageTransform插件兼容性存在问题,处理android-34的core-for-system-modules.jar时,jlink命令的参数无法正常执行。Android Studio内置的JBR(JetBrains Runtime)是经过适配优化的版本,能更好兼容Android构建流程。

内容的提问来源于stack exchange,提问作者AlexStavok

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 02:31:01