添加flutter_blue包后Flutter应用运行报错求助
问题根源与解决办法
问题原因
你使用的flutter_blue是已停止维护的旧包,无法兼容新版Android Gradle Plugin(AGP)的强制命名空间要求。新版AGP要求所有Android模块必须在build.gradle中声明namespace,但该旧包的Android模块未配置此项,导致编译时出现创建变体实例失败的错误。
解决办法
方案一:替换为维护中的替代包(推荐)
flutter_blue已停止更新,建议改用其分支项目flutter_blue_plus,该包持续维护,适配新版AGP和最新Flutter版本:
- 打开项目根目录的
pubspec.yaml,删除原有的flutter_blue依赖,添加:dependencies: flutter_blue_plus: ^1.13.3 # 可替换为当前最新版本号 - 执行命令
flutter pub get,之后重新运行项目即可。
方案二:手动修改旧包的Android配置(不推荐,易被覆盖)
如果暂时不想换包,可手动给flutter_blue的Android模块添加命名空间配置,但每次执行flutter pub get后修改会被覆盖,需重复操作:
- 找到
flutter_blue包的本地路径:.pub-cache/hosted/pub.dartlang.org/flutter_blue-<你的版本号>/android - 打开该目录下的
build.gradle文件,在android代码块中添加命名空间声明:android { namespace "com.pauldemarco.flutterblue" // 保留原有其他配置内容 } - 保存文件后重新运行项目。
内容的提问来源于stack exchange,提问作者peter mafai
相关产品推荐
相关产品推荐

