Flutter项目升级AGP 8.2.1后Android构建Gradle报错求助
解决思路
优先升级firebase_messaging依赖版本
你用的firebase_messaging-14.7.16是适配旧AGP版本的老包,完全不兼容AGP 8.x的命名空间规则。直接在pubspec.yaml里把firebase_messaging升级到最新稳定版,执行命令:flutter pub upgrade firebase_messaging同时要确保所有Firebase相关依赖(比如firebase_core)都同步升级,版本不匹配也会引发连锁问题。
修正命名空间配置方式
AGP 8.x要求直接在模块的build.gradle中声明命名空间,而非通过afterEvaluate动态设置。删除你添加的afterEvaluate代码块,在android/app/build.gradle的android块下直接添加:android { namespace "com.example.your_app" // 替换成你的实际包名 compileSdk 34 // AGP 8.x建议配合compileSdk 33+ // 其他原有配置... }彻底清理缓存
常规清理可能没清干净深层缓存,执行以下操作:- 删除项目根目录下的
.gradle文件夹 - 删除android目录下的
.gradle文件夹 - 删除android/app/build文件夹
- 执行
flutter pub cache clean清除pub缓存,再重新运行flutter pub get
- 删除项目根目录下的
检查并升级其他过时依赖
执行flutter pub outdated查看所有过时的依赖,把其他适配旧AGP的老依赖也一并升级到最新稳定版——AGP 8.x对第三方依赖的manifest规范要求更严格,旧依赖都可能触发类似报错。临时应急方案(不推荐长期使用)
如果暂时无法升级依赖,可在android/app/src/main/AndroidManifest.xml中强制覆盖旧依赖的package属性:<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.example.your_app"> <application tools:replace="package" <!-- 原有application属性 --> > <!-- 其他组件配置 --> </application> </manifest>注意要在manifest根节点添加
tools命名空间。
内容的提问来源于stack exchange,提问作者Andreas Rainer
相关产品推荐
相关产品推荐

