添加google_sign_in依赖后Flutter应用构建失败求助
Flutter添加google_sign_in依赖后构建失败的解决方案
问题描述
在Flutter项目中集成Firebase谷歌登录时,只要添加google_sign_in依赖,应用就无法构建运行;移除该依赖则恢复正常,即使在新项目中也会出现相同问题,且无论是否连接Firebase都会构建失败。
错误信息
warning: [options] source value 8 is obsolete and will be removed in a future release warning: [options] target value 8 is obsolete and will be removed in a future release warning: [options] To suppress warnings about obsolete options, use -Xlint:-options. 3 warnings FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':google_sign_in_android:compileDebugJavaWithJavac'. > Could not resolve all files for configuration ':google_sign_in_android:androidJdkImage'. > Failed to transform core-for-system-modules.jar to match attributes {artifactType=_internal_android_jdk_image, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}. > Execution failed for JdkImageTransform: C:\Users\huzai\AppData\Local\Android\sdk\platforms\android-34\core-for-system-modules.jar. > Error while executing process C:\Program Files\Android\Android Studio\jbr\bin\jlink.exe with arguments {--module-path C:\Users\huzai\.gradle\caches\transforms-3\4a46fc89ed5f9adfe3afebf74eb8bfeb\transformed\output\temp\jmod --add-modules java.base --output C:\Users\huzai\.gradle\caches\transforms-3\4a46fc89ed5f9adfe3afebf74eb8bfeb\transformed\output\jdkImage --disable-plugin system-modules}
项目配置
环境版本
- Java版本:Java 17
- Flutter版本:3.24.4
android/app/build.gradle内容
plugins { id "com.android.application" id "kotlin-android" // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } android { namespace = "com.example.letsmeetz" compileSdk = flutter.compileSdkVersion ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = JavaVersion.VERSION_17 } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId = "com.example.letsmeetz" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. minSdk = 23 targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName } buildTypes { release { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. signingConfig = signingConfigs.debug } } } flutter { source = "../.." }
android/build.gradle内容
allprojects { repositories { google() mavenCentral() } } rootProject.buildDir = "../build" subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(":app") } tasks.register("clean", Delete) { delete rootProject.buildDir }
pubspec.yaml依赖
cupertino_icons: ^1.0.8 firebase_core: ^3.6.0 cloud_firestore: ^5.4.4 firebase_auth: ^5.3.1 google_sign_in: ^6.2.1
已尝试操作
- 多次执行
flutter clean、flutter pub get清理缓存并重建项目 - 安装并切换JDK 17、20、21版本,问题仍未解决
解决方案
1. 统一子项目Java版本配置
修改android/build.gradle,在subprojects块中添加编译配置,确保google_sign_in_android模块使用Java 17而非默认的Java 8:
subprojects { project.evaluationDependsOn(":app") // 新增以下配置 tasks.withType(JavaCompile) { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } }
2. 指定Gradle使用的JDK路径
在项目根目录的gradle.properties文件(无则创建)中添加JDK 17的安装路径,确保Gradle使用指定JDK而非Android Studio自带的JBR:
org.gradle.java.home=C:\\Program Files\\Java\\jdk-17.0.10
注意:替换为你实际的JDK 17安装路径,Windows系统路径需用双反斜杠
3. 更新Gradle版本
检查android/gradle/wrapper/gradle-wrapper.properties中的Gradle版本,设置为与Flutter 3.24.4兼容的版本(如8.7):
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip
4. 彻底清理并重新构建
执行以下命令完成清理和重建:
flutter clean flutter pub get cd android ./gradlew clean cd .. flutter run
5. 修复Android SDK平台文件
- 打开Android Studio的SDK Manager,找到
Android 14 (API 34),卸载后重新安装完整的SDK Platform - 若仍有问题,手动删除
C:\Users\huzai\AppData\Local\Android\sdk\platforms\android-34目录,再重新安装API 34平台
内容的提问来源于stack exchange,提问作者CrazyFlutterDev
相关产品推荐
相关产品推荐

