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

Flutter添加第三方包时出现Build Gradle命名空间配置错误

Flutter第三方包编译报错:未指定Namespace问题解决与疑问解答

问题现象

在Flutter中安装第三方包并运行代码时,频繁出现Build Gradle文件未找到命名空间的错误。示例报错如下:

A problem occurred configuring project ':google_mlkit_commons'.
> Could not create an instance of type com.android.build.api.variant.impl.LibraryVariantBuilderImpl.
   > Namespace not specified. Please specify a namespace in the module's build.gradle file like so:

     android {
         namespace 'com.example.namespace'
     }

     If the package attribute is specified in the source AndroidManifest.xml, it can be migrated automatically to the namespace value in the build.gradle file using the AGP Upgrade Assistant.

临时解决方法

手动定位到报错的包(如:google_mlkit_commons),修改其android目录下的build.gradle文件,在android标签内添加namespace即可解决问题,示例代码:

android {
    namespace "com.google_mlkit_text_recognition"
    compileSdkVersion 31
    // 其他原有配置
}

疑问

  1. 是否每个要使用的第三方包都需要执行此操作?
  2. 为何现在出现该错误,是否与Flutter新版本有关?

环境信息

[√] Flutter (Channel stable, 3.16.5, on Microsoft Windows [Version 10.0.19045.3930], locale en-US)
    • Flutter version 3.16.5 on channel stable at C:\Users\engma\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 78666c8dc5 (4 weeks ago), 2023-12-19 16:14:14 -0800
    • Engine revision 3f3e560236
    • Dart version 3.2.3
    • DevTools version 2.28.4

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0) 
    • Android SDK at C:\Users\engma\AppData\Local\Android\sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java       
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-b2043.56-10550314)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[X] Visual Studio - develop Windows apps
    X Visual Studio not installed; this is necessary to develop Windows apps.
      Please install the "Desktop development with C++" workload, including all of its default components

[√] Android Studio (version 2023.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed
    • Dart plugin can be installed
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-b2043.56-10550314)

[√] VS Code (version 1.85.1)
    • VS Code at C:\Users\engma\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.80.0

[√] Connected device (4 available)
    • DRA LX2 (mobile)  • 5LX9K18817915788 • android-arm64  • Android 8.1.0 (API 27)
    • Windows (desktop) • windows          • windows-x64    • Microsoft Windows [Version 10.0.19045.3930]
    • Chrome (web)      • chrome           • web-javascript • Google Chrome 120.0.6099.217
    • Edge (web)        • edge             • web-javascript • Microsoft Edge 120.0.2210.133

[√] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

解答

1. 是否每个第三方包都需要手动修改?

不需要。只有未适配Android Gradle Plugin (AGP) 7.0+版本的老第三方包才会触发这个错误。AGP 7.0开始强制要求在build.gradle中显式声明namespace,替代了原AndroidManifest.xml里的package属性作为R类的命名空间。如果第三方包已经适配了AGP 7.0+,就不会出现这个问题,无需手动修改。

2. 错误出现的原因是否和Flutter新版本有关?

是的,直接相关。你当前使用的Flutter 3.16.5属于较新版本,它默认集成的AGP版本已经升级到了7.0+,而旧版本Flutter使用的AGP允许通过AndroidManifest.xml的package属性自动推断命名空间。新版本AGP强制要求显式配置namespace,那些未及时更新的老第三方包就会因为缺少这个配置而报错。

更优解决建议

  • 优先升级第三方包:大部分主流第三方包都已适配AGP 7.0+,升级到最新版本即可解决问题,这是最稳妥的方式。
  • 使用补丁工具:如果某个包已经停止维护没有新版本,可以用patch-package工具给该包打持久化补丁,避免每次执行flutter pub get后都要重新修改文件。

内容的提问来源于stack exchange,提问作者Saayeed M Daawoud

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 00:58:11