1.引用的包
jxmpp-core-0.5.0-alpha6.jar
jxmpp-jid-0.5.0-alpha6.jar
jxmpp-stringprep-libidn-0.5.0-alpha6.jar
jxmpp-util-cache-0.5.0-alpha6.jar
smack-android-4.1.4.jar
smack-bosh-4.1.4.jar
smack-compression-jzlib-4.1.4.jar
smack-core-4.1.4.jar
smack-debug-4.1.4.jar
smack-experimental-4.1.4.jar
smack-extensions-4.1.4.jar
smack-im-4.1.4.jar
smack-legacy-4.1.4.jar
smack-resolver-dnsjava-4.1.4.jar
smack-resolver-javax-4.1.4.jar
smack-resolver-minidns-4.1.4.jar
smack-sasl-javax-4.1.4.jar
smack-tcp-4.1.4.jar
下面是调用代码
在连接的时候出现如下错误。
一开始我是没有添加smack-sasl-javax-4.1.4.jar包,这个时候可以连接成功,但是在登录时connection.login();出现下面错误
请大神帮忙看看怎么搞,我自己是第一次使用smack。
jxmpp-core-0.5.0-alpha6.jar
jxmpp-jid-0.5.0-alpha6.jar
jxmpp-stringprep-libidn-0.5.0-alpha6.jar
jxmpp-util-cache-0.5.0-alpha6.jar
smack-android-4.1.4.jar
smack-bosh-4.1.4.jar
smack-compression-jzlib-4.1.4.jar
smack-core-4.1.4.jar
smack-debug-4.1.4.jar
smack-experimental-4.1.4.jar
smack-extensions-4.1.4.jar
smack-im-4.1.4.jar
smack-legacy-4.1.4.jar
smack-resolver-dnsjava-4.1.4.jar
smack-resolver-javax-4.1.4.jar
smack-resolver-minidns-4.1.4.jar
smack-sasl-javax-4.1.4.jar
smack-tcp-4.1.4.jar
下面是调用代码
class ConnectTask extends AsyncTask<String,Integer,Integer>{
@Override
protected Integer doInBackground(String... params) {
//SASLAuthentication.registerSASLMechanism(new SASLPlainMechanism());
//SASLAuthentication.registerSASLMechanism(new SASLDigestMD5Mechanism());
//SASLAuthentication.registerSASLMechanism(new SASLExternalMechanism());
//SASLAuthentication.registerSASLMechanism(new SASLCramMD5Mechanism());
//SASLAuthentication.registerSASLMechanism(new SASLGSSAPIMechanism());
XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration.builder(); //这里出错
config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
config.setCompressionEnabled(false);
config.setDebuggerEnabled(false);
config.setSendPresence(false);
config.setUsernameAndPassword("chqing", "123456");
config.setServiceName("WIN-8PMUUE8PT7S");
config.setHost("192.168.0.142");
config.setPort(5222);
AbstractXMPPConnection connection = new XMPPTCPConnection(config.build());
// SASLAuthentication.registerSASLMechanism(new SASL);
try {
connection.connect();
System.out.println("连接成功.");
connection.login();
} catch (SmackException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (XMPPException e) {
e.printStackTrace();
}
return 0;
}
在连接的时候出现如下错误。
10-20 23:56:31.939 8024-8070/com.chqing.testasmack W/dalvikvm﹕ Exception Ljava/lang/VerifyError; thrown while initializing Lorg/jivesoftware/smack/SmackInitialization;
10-20 23:56:31.939 8024-8070/com.chqing.testasmack W/dalvikvm﹕ Exception Ljava/lang/VerifyError; thrown while initializing Lorg/jivesoftware/smack/ConnectionConfiguration;
10-20 23:56:31.949 8024-8070/com.chqing.testasmack W/dalvikvm﹕ threadid=11: thread exiting with uncaught exception (group=0xb47ad678)
10-20 23:56:31.949 8024-8070/com.chqing.testasmack E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
at java.util.concurrent.FutureTask.run(FutureTask.java:239)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.VerifyError: org/jivesoftware/smack/sasl/javax/SASLJavaXMechanism
at org.jivesoftware.smack.sasl.javax.SASLJavaXSmackInitializer.initialize(SASLJavaXSmackInitializer.java:28)
at org.jivesoftware.smack.SmackInitialization.loadSmackClass(SmackInitialization.java:232)
at org.jivesoftware.smack.SmackInitialization.parseClassesToLoad(SmackInitialization.java:193)
at org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitialization.java:163)
at org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitialization.java:148)
at org.jivesoftware.smack.SmackInitialization.<clinit>(SmackInitialization.java:116)
at org.jivesoftware.smack.SmackConfiguration.getVersion(SmackConfiguration.java:96)
at org.jivesoftware.smack.ConnectionConfiguration.<clinit>(ConnectionConfiguration.java:38)
at com.chqing.testasmack.MainActivity$ConnectTask.doInBackground(MainActivity.java:68)
at com.chqing.testasmack.MainActivity$ConnectTask.doInBackground(MainActivity.java:60)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
????????????at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
????????????at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
????????????at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
????????????at java.lang.Thread.run(Thread.java:841)
一开始我是没有添加smack-sasl-javax-4.1.4.jar包,这个时候可以连接成功,但是在登录时connection.login();出现下面错误
10-21 02:03:51.214 31329-31387/com.chqing.testasmack I/dalvikvm﹕ Failed resolving Lorg/jivesoftware/smack/util/dns/minidns/MiniDnsResolver$1; interface 1814 'Lde/measite/minidns/DNSCache;'
10-21 02:03:51.214 31329-31387/com.chqing.testasmack W/dalvikvm﹕ Link of class 'Lorg/jivesoftware/smack/util/dns/minidns/MiniDnsResolver$1;' failed
10-21 02:03:51.214 31329-31387/com.chqing.testasmack D/dalvikvm﹕ DexOpt: unable to opt direct call 0x471d at 0x07 in Lorg/jivesoftware/smack/util/dns/minidns/MiniDnsResolver;.<init>
10-21 02:03:51.214 31329-31387/com.chqing.testasmack D/dalvikvm﹕ DexOpt: unable to opt direct call 0x3a03 at 0x0a in Lorg/jivesoftware/smack/util/dns/minidns/MiniDnsResolver;.<init>
10-21 02:03:51.214 31329-31387/com.chqing.testasmack W/dalvikvm﹕ Exception Ljava/lang/NoClassDefFoundError; thrown while initializing Lorg/jivesoftware/smack/util/dns/minidns/MiniDnsResolver;
10-21 02:03:51.214 31329-31387/com.chqing.testasmack E/dalvikvm﹕ Could not find class 'org.xbill.DNS.Lookup', referenced from method org.jivesoftware.smack.util.dns.dnsjava.DNSJavaResolver.lookupSRVRecords
10-21 02:03:51.214 31329-31387/com.chqing.testasmack W/dalvikvm﹕ VFY: unable to resolve new-instance 3411 (Lorg/xbill/DNS/Lookup;) in Lorg/jivesoftware/smack/util/dns/dnsjava/DNSJavaResolver;
10-21 02:03:51.214 31329-31387/com.chqing.testasmack D/dalvikvm﹕ VFY: replacing opcode 0x22 at 0x0005
10-21 02:03:51.214 31329-31387/com.chqing.testasmack D/dalvikvm﹕ DexOpt: unable to opt direct call 0x5e3c at 0x09 in Lorg/jivesoftware/smack/util/dns/dnsjava/DNSJavaResolver;.lookupSRVRecords
10-21 02:03:51.224 31329-31387/com.chqing.testasmack D/dalvikvm﹕ GC_FOR_ALLOC freed 359K, 13% free 3262K/3708K, paused 4ms, total 4ms
10-21 02:03:51.264 31329-31387/com.chqing.testasmack D/dalvikvm﹕ GC_FOR_ALLOC freed 393K, 14% free 3330K/3852K, paused 2ms, total 3ms
10-21 02:03:51.294 31329-31387/com.chqing.testasmack D/dalvikvm﹕ GC_FOR_ALLOC freed 404K, 14% free 3404K/3928K, paused 3ms, total 3ms
10-21 02:03:51.484 31329-31387/com.chqing.testasmack I/System.out﹕ 连接成功.
10-21 02:03:51.484 31329-31387/com.chqing.testasmack W/System.err﹕ org.jivesoftware.smack.SmackException: SASL Authentication failed. No known authentication mechanisims.
10-21 02:03:51.484 31329-31387/com.chqing.testasmack W/System.err﹕ at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:254)
10-21 02:03:51.494 31329-31387/com.chqing.testasmack W/System.err﹕ at org.jivesoftware.smack.tcp.XMPPTCPConnection.loginNonAnonymously(XMPPTCPConnection.java:374)
10-21 02:03:51.494 31329-31387/com.chqing.testasmack W/System.err﹕ at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:457)
10-21 02:03:51.494 31329-31387/com.chqing.testasmack W/System.err﹕ at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:415)
10-21 02:03:51.494 31329-31387/com.chqing.testasmack W/System.err﹕ at com.chqing.testasmack.MainActivity$ConnectTask.doInBackground(MainActivity.java:83)
10-21 02:03:51.494 31329-31387/com.chqing.testasmack W/System.err﹕ at com.chqing.testasmack.MainActivity$ConnectTask.doInBackground(MainActivity.java:60)
10-21 02:03:51.494 31329-31387/com.chqing.testasmack W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:287)
10-21 02:03:51.494 31329-31387/com.chqing.testasmack W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:234)
10-21 02:03:51.494 31329-31387/com.chqing.testasmack W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
10-21 02:03:51.494 31329-31387/com.chqing.testasmack W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
10-21 02:03:51.494 31329-31387/com.chqing.testasmack W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
10-21 02:03:51.494 31329-31387/com.chqing.testasmack W/System.err﹕ at java.lang.Thread.run(Thread.java:841)
请大神帮忙看看怎么搞,我自己是第一次使用smack。