Flutter RTMP推流包空安全适配及flutter_rtmppublisher构建报错如何解决
报错根因
- 你使用的
flutter_rtmppublisher包已停止维护超过3年,未适配Flutter 2.0及以上版本的空安全规范,底层依赖的rtplibrary原生模块配置也与新版Android Gradle插件不兼容,模块构建属性匹配失败触发了上述构建错误。 - 该包的原生代码仅适配3.6.x及以下版本的Android Gradle插件,和当前主流开发环境的Gradle 7+、8+版本完全不兼容。
解决方案
优先方案:更换支持空安全的维护中RTMP推流包
直接弃用已停止维护的旧包,选择目前仍在迭代的适配空安全的RTMP推流包,比如flutter_rtmp_publisher、live_rtmp,上述包均兼容Flutter 3.x全版本,支持Android、iOS双端推流,无需额外修改原生配置,在pubspec.yaml中引入对应依赖即可直接调用推流接口向你的目标RTMP地址推流。
临时兼容方案:修改环境适配旧包
如果必须使用当前旧包做测试,可通过修改项目配置临时兼容:
- 打开项目
android/build.gradle文件,将Android Gradle插件版本修改为3.6.0 - 打开
android/gradle/wrapper/gradle-wrapper.properties文件,将gradle分发地址版本修改为5.6.4 - 在
android/settings.gradle中手动添加rtplibrary模块引用,路径指向pub缓存中该旧包对应的android/rtplibrary目录 - 运行项目时添加
--no-sound-null-safety参数,关闭空安全检查
该方案仅可用于临时调试,会导致整个项目无法使用空安全特性,后续大概率会出现其他兼容性问题,不可用于正式生产环境。
内容的提问来源于stack exchange,提问作者Alex 235
相关产品推荐
相关产品推荐

