【问题标题】:Smack XMPP android Crash on ConnectingSmack XMPP android 连接时崩溃
【发布时间】:2023-07-13 23:17:02
【问题描述】:

我在 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 了解更多信息
  • 我现在遇到同样的问题..如何解决?

标签: java android xmpp smack


【解决方案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.s‌​mack.util.dns.minidn‌​s.MiniDnsResolver");‌​”。现在工作:)