Banuba Video SDK报错:尝试创建单例第二个实例问题求助
BanubaSDK 导航时因单例重复创建崩溃的解决方案
错误详情
BanubaSDK error: At /Users/user/buildAgent/work/846da17cdd594915/libs/utils/bnb/utils/scoped_singleton.hpp:63. You are trying to create the second instance of the singleton.: *inst_ptr == nullptr
问题场景
通过控制器加载SDK后,第二次导航时程序触发上述错误并崩溃,多次尝试未解决。
排查与解决建议
- 规范单例生命周期:在控制器销毁的生命周期方法(如iOS的
deinit、Android的onDestroy)中调用SDK提供的单例释放接口(如destroyInstance),确保每次控制器销毁时清理SDK实例,避免下次导航重复初始化。 - 全局初始化SDK:将SDK的初始化逻辑移至应用启动阶段(如AppDelegate、Application类),确保整个应用生命周期内仅初始化一次,避免在控制器内重复触发初始化。
- 检查导航与控制器实例:确认导航逻辑是否会重复创建加载SDK的控制器实例,或存在控制器内存泄漏未被销毁的情况,导致多次执行SDK初始化代码。
- 添加初始化前置判断:在调用SDK初始化方法前,增加单例存在性检查,避免重复初始化:
if (!BNBSdkManager::instance()) { BNBSdkManager::createInstance(config); }
内容的提问来源于stack exchange,提问作者2211_FAIZAN SHAIKH
相关产品推荐
相关产品推荐

