【发布时间】:2014-09-18 09:21:15
【问题描述】:
你好!
我正在开发(尝试开发)一个适用于 Android 的 VoIP SIP 应用程序,在与 mjsip、pjsip 和 sdk 的库争吵两周后,我决定使用 JAIN-SIP。理论上,这些库看起来很棒。无需学习任何 android 原生代码、大量文档(但还不够,因为我在这里)等。
我的第一次尝试是使用 Android SDK 的 SIP 库(是的,我知道它们基于 JSIP),但在 SipManager.open() 拒绝打开配置文件以与服务器通信后它失败了,没有例外或任何类型的输出来帮助我诊断问题。 (如果您有潜在的解决方案,请查看here)在研究了 mjsip 和 pjsip 之后,我决定按计划进行,找出本机代码需要太多时间,所以 JAIN 似乎是完美的解决方案。 ..或者是吗?
问题是 - JAIN SIP 库在包装中使用与 java 的核心库相同的名称,因此导致 dalvik 出现 dex 问题。但是好的,有一个“ant make all-android”解决方案可以将 sip 堆栈源构建到为 android 准备的单个 .jar 中。 错误。只有“gov.nist”包被重构,“javax”包与以前一样,导致相同的 dalvik dex 问题。但是等等!- 还有 JarJar,一个重新打包你的 jar 并重构包的工具,解决了 dex 冲突。 错误。使用 JarJar 重新打包还会重命名对堆栈进行加密和诸如此类所需的实际 javax.net 包的引用,从而导致异常和崩溃以及各种问题。所以我昨天大部分时间都在手动重构 javax 库,这导致了
...Caused by: java.lang.Error: Unresolved compilation problem:
这是我的问题...
- 有没有人遇到过任何真正开箱即用且无需重命名、重新打包和重构的 android-ready jain-sip 库?
- 也许我的 JarJar 规则有误?有人可以为我提供规则来重命名所有包和对“javax.sip”和“javax.sdp”的引用,但NOT“javax.net”?
- 是否还有其他适用于 android 的 SIP 库(不需要任何 NDK 或本机代码知识)?
- 为什么 2014 年还这么痛?
附:在将我指向谷歌页面或其他 stackoverflow 问题之前,请考虑一下我已经被困在这两个星期了,除了试图解决问题之外什么都不做——我可以向你保证,互联网已经被彻底搜索过,并且解决方案要么不申请,要么不工作。
2016 年 5 月编辑 - 接受的答案现已过时,请参阅下面的 joelpatrol 回复以获取更新的解决方案。 HERE
【问题讨论】:
-
我承认这可能是一个好问题,但也存在一些问题:1) SO 不接受库推荐。 2) 没问题。 3) 再次,原因与 1. 4) 相同。不是建设性的问题。您可能通过告诉您在 JarJar 上尝试了哪些规则来尝试改进这个问题。这样,人们可能知道出了什么问题。除此之外,Android VoIPers 可能真的不多。
-
1) 抱歉,错过了这条规则。 2) 酷。 3) 同 1。 4) 同意。了解为什么可以构建消息、将其发送到服务器并侦听回复仍然很有用,但是当打包到一个基本上做同样事情的库中时会变得如此忙碌。