我有一个iOS网络电话应用程序,利用Linphone库。以前,该应用程序运行成功,但我刚刚从linphone-iphone升级了linphone框架和文件: LinphoneManager.h/.m和Utils.h/.m。
在从linphone-sdk的新版本中添加更新的框架并更新LinphoneManager.h/m之后,我在启动应用程序时遇到了崩溃。一旦应用程序命中,就会发生崩溃。
lp_config_get_string(_configDb, [section UTF8String], [key UTF8String], NULL);在lpConfigStringForKey()中。
我尝试过删除和读取框架,并检查LinphoneManager.h/.m代码,但我没有遇到任何解决方案,也没有在linphone-iphone问题中发现任何类似于我的例子。
当它击中以下代码块时,会发生崩溃
- (NSString *)lpConfigStringForKey:(NSString *)key inSection:(NSString *)section withDefault:(NSString *)defaultValue {
if (!key) {
return defaultValue;
}
const char *value = lp_config_get_string(_configDb, [section UTF8String], [key UTF8String], NULL);
return value ? [NSString stringWithUTF8String:value] : defaultValue;
}这是我没有修改的LinphoneManager.m中的一个标准函数。
具体来说,崩溃来自于linphone框架中的这个函数:
lp_config_get_string(_configDb, [section UTF8String], [key UTF8String], NULL);当应用程序崩溃时,我已经记录了键、节和defaultValue变量。它们是:
2019-07-11 10:58:51.033849-0500 myApp[15512:511705] KEY: debugenable_preference
2019-07-11 10:58:51.033964-0500 myApp[15512:511705] SECTION: app
2019-07-11 10:58:51.034040-0500 myApp[15512:511705] DEFAULT: (null)linphone_config_get_string的头注释(这是lp_config_get_string所指的)如下:
/**
* Retrieves a configuration item as a string, given its section, key, and default value.
*
* The default value string is returned if the config item isn't found.
**/
LINPHONE_PUBLIC const char *linphone_config_get_string(const LinphoneConfig *lpconfig, const char *section, const char *key, const char *default_string);下面是错误和崩溃的屏幕截图:崩溃堆栈跟踪和错误
我想我在添加框架时遗漏了一些东西,但是我还没有找到它。
谢谢
发布于 2019-07-12 18:19:01
我发现了问题。init函数中缺少以下内容:
[self renameDefaultSettings];
[self copyDefaultSettings];
[self overrideDefaultSettings];这导致了lp_config的一些问题
https://stackoverflow.com/questions/56993398
复制相似问题