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

Flutter升级后构建APK报错:audiofileplayer模块未指定Namespace

解决Flutter升级后audiofileplayer模块的Namespace配置问题

问题根源

升级到AGP 8.0.0后,Android构建工具要求所有Android模块(包括第三方Flutter插件)必须在build.gradle中显式声明namespace,而旧版本的audiofileplayer插件未适配该规则,即使更新到最新版也可能存在这个问题。同时你的Android Studio 2022.3版本不兼容AGP 8.x,导致AGP升级助手无法正常工作。

可行解决方案

方案1:降级AGP与Gradle到兼容版本

如果不想修改第三方依赖,可回退到兼容的AGP版本,避开namespace强制要求:

  • 修改项目根目录android/build.gradle:
    ext.kotlin_version = '1.7.20'
    dependencies {
        classpath 'com.android.tools.build:gradle:7.4.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.4.0'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9'
    }
    
  • 修改android/gradle/wrapper/gradle-wrapper.properties:
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
    
  • 执行flutter clean后重新构建。

方案2:手动修改audiofileplayer插件的配置

直接给第三方插件添加namespace声明:

  1. 找到audiofileplayer的本地缓存路径:
    路径通常为~/.pub-cache/hosted/pub.dev/audiofileplayer-[你的插件版本]/android
  2. 打开该目录下的build.gradle文件,在android代码块中添加namespace(可参考插件AndroidManifest.xml中的package值,比如com.ryanheise.audiofileplayer):
    android {
        namespace 'com.ryanheise.audiofileplayer'
        // 原有配置...
    }
    
  3. 执行flutter clean和flutter build apk。

方案3:用补丁工具持久化修改依赖(避免pub get覆盖)

如果不想每次拉取依赖都手动修改,可使用补丁工具:

  1. 创建补丁文件记录对audiofileplayer的build.gradle修改
  2. 在pubspec.yaml中配置依赖时指定补丁,确保每次pub get后自动应用修改。

补充说明

你的Android Studio 2022.3版本仅支持AGP 7.x系列,升级到AGP 8.x需要Android Studio 2023.1.1(Hedgehog)及以上版本,这也是AGP升级助手无反应的原因。

内容的提问来源于stack exchange,提问作者Alessandro Fornari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:57:51