AGP升级助手后Flutter项目出现Namespace未指定错误排查
解决AGP升级后Flutter项目「Namespace not specified」错误
问题根源
AGP 7.0及以上版本要求所有Android模块(包括Flutter依赖的插件模块)必须显式声明namespace,哪怕你的主项目配置完全正确,只要有某个插件的Android端没适配这个规则,就会触发报错。
可行解决方案
1. 全局自动补全插件的namespace
在项目根目录的build.gradle(不是app模块下的那个)里添加以下配置,让Gradle自动给没声明namespace的插件模块补全:
subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { android { namespace project.group } } } }
这个配置会遍历所有子模块,只要是Android模块且没设置namespace,就用模块的group值自动生成对应namespace。
2. 升级或替换未适配的插件
- 查一下报错的插件有没有适配AGP 7.0+的新版本,直接升级到最新版就行。
- 如果插件已经没人维护了,就换个功能类似的活跃插件(比如你用
flutter_contacts替换contacts_service的思路是对的)。
3. 手动给单个插件加namespace
要是不想全局配置,也可以找到对应插件的Android模块(一般在flutter/.pub-cache/hosted/pub.dev/[插件名称]/android目录下),修改它的build.gradle,添加:
android { namespace "com.example.[插件包名]" // 包名可以从插件的AndroidManifest.xml里的package属性复制 }
注意:这种方法在插件更新后会被覆盖,只能临时用。
验证操作
- 先执行
flutter clean清理缓存 - 重新运行项目,看看错误是否消失
内容的提问来源于stack exchange,提问作者Dani
相关产品推荐
相关产品推荐

