我正在尝试使用Android 2.3.3上的JAIN-SIP (J-SIP)库。(http://jsip.java.net/)因此,我使用了一个非常基本的Stack附带的示例应用程序。这个例子在Android设备<= android2.2上运行的很好。
问题是,Android 2.3.3带来了一个带有系统库的SIP-Strack,这是JAIN-SIP堆栈的一个略微修改的版本。因此,在Android 2.3.3设备上,内部SIP-Stack被加载(因为相同的包/库名称),而不是APK附带的JAIN-SIP,应用程序崩溃并出现"function not found“异常(因为这个内部Android 2.3.3 SIP-Stack中不存在某些功能)。
我不想知道的是,我如何“优先”使用APK附带的JAIN-SIP堆栈,而忽略Android系统的SIP-Stack。
一种解决方案是使用内部的SIP-Stack directyl,这是强烈反对的,因为没有人知道下一个Android版本是否会进一步修改它。
我想到的另一个解决方案是更改" my“JAIN-SIP堆栈的包名,以免与内部SIP堆栈混淆。
manifest.xml中的uses-library声明不起作用,因为它只用于内部SDK-libs / SDK-Addons。
还有更多的想法吗?
发布于 2012-12-20 18:02:55
我们正在考虑发布jar,这将允许通过使用post转换工具重命名所有的javax类来将JSIP Stack嵌入到任何Android设备中,并将jar与常规的jsip jar一起发布。请参阅https://groups.google.com/d/topic/mobicents-public/UD7ZTX74Yrk/discussion
吉恩
发布于 2011-05-18 17:34:41
我应用了我提出的解决方案,通过Eclipse重构函数将JSIp - stack的包重命名为JSIP-stack,并让JSIp栈在Android2.3.3模拟器和设备上工作。在示例和类"SipStackImpl.java“中有包路径字符串,应该手动将其重命名(查找/替换)为新的包路径。
我使用JSIP堆栈中的shootist和shootme示例对其进行了测试。
它还可以在Emulator中的Android2.2上运行。
如果有人能想出更好的解决方案,我会很感激的。
https://stackoverflow.com/questions/5801107
复制相似问题