Smack XMPP android 连接时崩溃
Posted
技术标签:
【中文标题】Smack XMPP android 连接时崩溃【英文标题】:Smack XMPP android Crash on Connecting 【发布时间】:2017-09-15 10:33:13 【问题描述】:我在 android 应用程序中使用 Smack XMPP 之前,除了今天早上它开始无缘无故地崩溃之外,一切都运行得非常顺利。 这是我在 Gradle 中包含的内容:
compile 'org.igniterealtime.smack:smack-android:4.2.0'
compile 'org.igniterealtime.smack:smack-tcp:4.2.0'
compile 'org.igniterealtime.smack:smack-android-extensions:4.2.0'
并且日志正在打印此错误
java.lang.ExceptionInInitializerError 在 de.measite.minidns.DNSName.from(DNSName.java:287) 在 de.measite.minidns.dnssec.DNSSECClient.(DNSSECClient.java:48) 在 de.measite.minidns.hla.DnssecResolverApi.(DnssecResolverApi.java:47) 在 de.measite.minidns.hla.DnssecResolverApi.(DnssecResolverApi.java:38) 在 de.measite.minidns.hla.DnssecResolverApi.(DnssecResolverApi.java:31) 在 org.jivesoftware.smack.util.dns.minidns.MiniDnsResolver.(MiniDnsResolver.java:54) 在 java.lang.Class.classForName(本机方法) 在 java.lang.Class.forName(Class.java:324) 在 org.jivesoftware.smack.SmackInitialization.loadSmackClass(SmackInitialization.java:218) 私有静态最终 DNSName DEFAULT_DLV = DNSName.from("dlv.isc.org");
在这一行
XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration
.builder();
我搜索了很多,但找不到任何东西。
谢谢
【问题讨论】:
我在访问 XMPPTCPConnectionConfiguration.builder() 时也遇到了类似的错误;这似乎是一个错误。访问:community.igniterealtime.org/thread/61235 了解更多信息 我现在遇到同样的问题..如何解决? 【参考方案1】:您好,我也遇到了这个问题。
问题来自一个依赖项“de.measite.minidns”,该依赖项推送了带有错误的更新。所以我通过排除自动依赖并包括最后一个稳定版本来修复它。它解决了我的问题。希望对你们有用
compile ('org.igniterealtime.smack:smack-android:4.2.0')
exclude group:'de.measite.minidns'
compile ('org.igniterealtime.smack:smack-tcp:4.2.0')
exclude group:'de.measite.minidns'
compile group: 'de.measite.minidns', name: 'minidns-hla', version:
'0.2.2'
【讨论】:
您能否分享您的 Gradle,因为我添加了上述行,但同样的问题正在发生 @NooruddinLakhani 我需要在“依赖项”下添加这些行吗?? @Syeda 是的,您需要在依赖项中添加这些 不适合我:(你能分享你的gradle吗? 需要在config前加上这一行" SmackConfiguration.addDisabledSmackClass("org.jivesoftware.smack.util.dns.minidns.MiniDnsResolver");"【参考方案2】:dependencies
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',
exclude group: 'com.android.support', module: 'support-annotations'
)
//open due to the need to get offline messages
compile 'org.igniterealtime.smack:smack-extensions:4.2.0'
compile 'org.igniterealtime.smack:smack-im:4.2.0'
compile ('org.igniterealtime.smack:smack-android:4.2.0')
exclude group:'de.measite.minidns'
compile 'org.igniterealtime.smack:smack-experimental:4.2.0'
// Optional for XMPPTCPConnection
compile ('org.igniterealtime.smack:smack-tcp:4.2.0')
exclude group:'de.measite.minidns'
compile group: 'de.measite.minidns', name: 'minidns-hla', version:
'0.2.2'
【讨论】:
谢谢,但也需要添加“SmackConfiguration.addDisabledSmackClass("org.jivesoftware.smack.util.dns.minidns.MiniDnsResolver");”。现在工作:)以上是关于Smack XMPP android 连接时崩溃的主要内容,如果未能解决你的问题,请参考以下文章