安装Java 17后Flutter安卓构建失败求助
解决Flutter安卓构建失败问题
核心问题分析
- AGP(Android Gradle Plugin)8.1.2要求Java 11及以上,但当前构建环境仍以Java 8为目标配置,同时Gradle 7.6.1与AGP 8.1.2版本不兼容(AGP 8.x需搭配Gradle 8.0+版本)。
- 后续出现的
android属性找不到、implementation方法报错,均为依赖解析失败引发的连锁问题。
具体修复步骤
1. 升级Gradle版本至兼容AGP 8.1.2的版本
修改gradle-wrapper.properties中的distributionUrl,替换为Gradle 8.0+的稳定版本(推荐8.2):
#Fri Jun 23 08:50:38 CEST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-all.zip
2. 统一项目Java版本为17
在项目根目录的android/build.gradle文件中,调整Java版本配置:
buildscript { ext.kotlin_version = '1.9.0' // AGP 8.1.2推荐搭配1.8.20+版本的Kotlin插件 repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:8.1.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.4.0' // 保持Firebase插件为最新稳定版 } } allprojects { repositories { google() mavenCentral() } } // 统一子项目Java版本 subprojects { tasks.withType(JavaCompile) { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } }
同时修改android/app/build.gradle中的编译配置:
android { compileSdk 34 // 使用最新稳定版SDK compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } }
3. 同步项目并清理缓存
- 在Android Studio中点击File > Sync Project with Gradle Files完成同步
- 执行命令清理缓存并重新构建:
flutter clean flutter build apk
4. 检查Firebase依赖版本兼容性
确保pubspec.yaml中cloud_firestore和firebase_core为最新稳定版,示例如下:
dependencies: flutter: sdk: flutter cloud_firestore: ^4.13.0 firebase_core: ^2.24.2
执行flutter pub get更新依赖。
内容的提问来源于stack exchange,提问作者mame
相关产品推荐
相关产品推荐

