【发布时间】:2011-04-27 08:09:16
【问题描述】:
我正在尝试在 Android 2.3.3 上使用 JAIN-SIP (J-SIP) 库。 (http://jsip.java.net/) 因此,我使用了 SIP-Stack 附带的一个非常基本的 SIP 示例应用程序。 此示例在 Android 设备
问题在于,Android 2.3.3 带来了一个带有系统库的 SIP-Strack, 这是 JAIN-SIP 堆栈的略微修改版本。 所以在 Android 2.3.3 设备上,内部 SIP-Stack 被加载(因为相同的包/库名称)而不是 APK 附带的 JAIN-SIP,并且应用程序崩溃并出现“找不到函数”异常(由于事实上,这个内部的 Android 2.3.3 SIP-Stack 中不存在某些功能。
我想知道的是,我如何“优先”我的 APK 附带的 JAIN-SIP 堆栈并忽略 Android 系统 SIP-Stack。
一种解决方案是使用内部 SIP-Stack directyl,强烈建议不要这样做,因为没有人知道它是否不会在下一个 Android 版本中进一步修改。
我想到的另一个解决方案是更改“我的”JAIN-SIP 堆栈的包名称,使其不与内部 SIP 堆栈混淆。
manifest.xml 中的 uses-library 声明不起作用,因为它仅适用于内部 SDK-libs / SDK-Addons。
还有什么想法吗?
【问题讨论】:
-
能否请您帮助我了解您是如何做到这一点的,以及我如何将同样的东西带入我的 Froyo 堆栈?
-
我使用了 Eclipse IDE 的重构功能。只需重构->重命名 SIP-API 和 SIP-RI 的基本包。之后,您必须在整个 API 和 RI 中搜索“gov.nist”。 Eclipse 没有检测到大约 5 个带有硬编码包名的字符串。最后修复 *.core.PackageNames.java 中的常量,你就完成了。顺便说一句:在 Android 2.2 及更低版本上,J-SIP (JAIN-SIP) API 和 RI 开箱即用。
-
我尝试下载 J-SIP,但它引导我进入类似 svn 的页面。从哪里可以得到源代码?
-
svn co https://svn.java.net/svn/jsip~svn