Flutter构建失败:better_player模块未指定命名空间报错
解决better_player插件在AGP 8.x环境下的Namespace未指定构建错误
问题原因
你使用的better_player: ^0.0.84版本较旧,未适配Android Gradle Plugin(AGP)8.0+的强制要求:所有Android库模块必须在build.gradle中显式声明namespace,替代原AndroidManifest.xml中的package属性。而你的项目AGP版本为8.1.0,触发了这个兼容性问题。
解决方案
方案一:升级better_player到兼容版本(推荐)
将pubspec.yaml中的better_player版本更新到支持AGP 8.x的最新版(当前推荐^0.0.89,可根据pub.dev最新版本调整):
dependencies: # ...其他依赖 better_player: ^0.0.89
执行命令更新依赖:
flutter pub get
方案二:降级AGP到7.x版本
修改android/settings.gradle中的AGP和Kotlin版本,适配老插件:
plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "7.4.2" apply false id "org.jetbrains.kotlin.android" version "1.7.20" apply false }
同步Gradle后重新构建项目。
方案三:手动给better_player添加namespace(临时应急方案)
找到本地Flutter缓存中的better_player模块路径(通常为~/.pub-cache/hosted/pub.dev/better_player-0.0.84/android/build.gradle),在android代码块中添加namespace声明:
android { namespace "com.jhomlala.better_player" // ...原有的其他配置 }
修改后重新执行构建命令。
验证操作
完成上述任一方案后,执行以下命令重新构建项目:
flutter run
内容的提问来源于stack exchange,提问作者Martin Wittick
相关产品推荐
相关产品推荐

