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声明:
- 找到
audiofileplayer的本地缓存路径:
路径通常为~/.pub-cache/hosted/pub.dev/audiofileplayer-[你的插件版本]/android - 打开该目录下的
build.gradle文件,在android代码块中添加namespace(可参考插件AndroidManifest.xml中的package值,比如com.ryanheise.audiofileplayer):android { namespace 'com.ryanheise.audiofileplayer' // 原有配置... } - 执行
flutter clean和flutter build apk。
方案3:用补丁工具持久化修改依赖(避免pub get覆盖)
如果不想每次拉取依赖都手动修改,可使用补丁工具:
- 创建补丁文件记录对
audiofileplayer的build.gradle修改 - 在
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
相关产品推荐
相关产品推荐

