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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 06:37:03