首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用程序在lpConfigStringForKey上与Linphone的碰撞

应用程序在lpConfigStringForKey上与Linphone的碰撞
EN

Stack Overflow用户
提问于 2019-07-11 16:14:36
回答 1查看 97关注 0票数 0

我有一个iOS网络电话应用程序,利用Linphone库。以前,该应用程序运行成功,但我刚刚从linphone-iphone升级了linphone框架和文件: LinphoneManager.h/.m和Utils.h/.m。

在从linphone-sdk的新版本中添加更新的框架并更新LinphoneManager.h/m之后,我在启动应用程序时遇到了崩溃。一旦应用程序命中,就会发生崩溃。

代码语言:javascript
复制
lp_config_get_string(_configDb, [section UTF8String], [key UTF8String], NULL);

在lpConfigStringForKey()中。

我尝试过删除和读取框架,并检查LinphoneManager.h/.m代码,但我没有遇到任何解决方案,也没有在linphone-iphone问题中发现任何类似于我的例子。

当它击中以下代码块时,会发生崩溃

代码语言:javascript
复制
- (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框架中的这个函数:

代码语言:javascript
复制
lp_config_get_string(_configDb, [section UTF8String], [key UTF8String], NULL);

当应用程序崩溃时,我已经记录了键、节和defaultValue变量。它们是:

代码语言:javascript
复制
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所指的)如下:

代码语言:javascript
复制
/**
 * 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);

下面是错误和崩溃的屏幕截图:崩溃堆栈跟踪和错误

我想我在添加框架时遗漏了一些东西,但是我还没有找到它。

  • 注意-如果我注释掉了lp_config_get_string调用,那么当应用程序进入下一个lp_config函数调用时,它就会崩溃。所以看起来它与linphone.framework和lp_config模块有关,但我还没有找到解决方案。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-12 18:19:01

我发现了问题。init函数中缺少以下内容:

代码语言:javascript
复制
    [self renameDefaultSettings];
    [self copyDefaultSettings];
    [self overrideDefaultSettings];

这导致了lp_config的一些问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56993398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档