I’m running Smack 4.1.3 on Android 2.2 and get this error:
java.lang.NoClassDefFoundError: java.net.IDN
at de.measite.minidns.util.NameUtil.toByteArray(NameUtil.java:56)
at de.measite.minidns.Question.toByteArray(Question.java:123)
at de.measite.minidns.Question.hashCode(Question.java:138)
at java.util.LinkedHashMap.get(LinkedHashMap.java:247)
at org.jxmpp.util.cache.LruCache.get(LruCache.java:90)
at org.jxmpp.util.cache.ExpirationCache.get(ExpirationCache.java:57)
at org.jivesoftware.smack.util.dns.minidns.MiniDnsResolver$1.get(MiniDnsResolver.java:54)
at de.measite.minidns.Client.query(Client.java:229)
at de.measite.minidns.Client.query(Client.java:149)
at org.jivesoftware.smack.util.dns.minidns.MiniDnsResolver.lookupSRVRecords(MiniDnsResolver.java:79)
at org.jivesoftware.smack.util.DNSUtil.resolveDomain(DNSUtil.java:171)
at org.jivesoftware.smack.util.DNSUtil.resolveXMPPDomain(DNSUtil.java:120)
at org.jivesoftware.smack.AbstractXMPPConnection.populateHostAddresses(AbstractXMPPConnection.java:574)
at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectUsingConfiguration(XMPPTCPConnection.java:552)
at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection.java:830)
at org.jivesoftware.smack.AbstractXMPPConnection.connect(AbstractXMPPConnection.java:365)
at org.kontalk.service.XMPPConnectionHelper.connectOnce(XMPPConnectionHelper.java:192)
at org.kontalk.service.XMPPConnectionHelper.connectOnce(XMPPConnectionHelper.java:141)
at org.kontalk.client.NumberValidator.initConnection(NumberValidator.java:478)
at org.kontalk.client.NumberValidator.run(NumberValidator.java:201)
at org.kontalk.client.NumberValidator.run(NumberValidator.java:210)
at java.lang.Thread.run(Thread.java:1096)
Since java.net.IDN is available since API level 9 (http://developer.android.com/reference/java/net/IDN.html) Smack will not work on Android 2.2. Is there anything I can do besides modifying Smack code?