我使用此链接中的相同代码Google chat
但是我得到了以下错误。
04-12 09:13:55.903: ERROR/AndroidRuntime(362): FATAL EXCEPTION: Thread-8
04-12 09:13:55.903: ERROR/AndroidRuntime(362): java.lang.ExceptionInInitializerError
04-12 09:13:55.903: ERROR/AndroidRuntime(362): at org.jivesoftware.smack.ConnectionConfiguration.<init>(ConnectionConfiguration.java:99)
04-12 09:13:55.903: ERROR/AndroidRuntime(362): at org.jivesoftware.smack.XMPPConnection.<init>(XMPPConnection.java:131)
04-12 09:13:55.903: ERROR/AndroidRuntime(362): at com.ex.HelloFormStuffActivity.HelloFormStuffActivity$1.run(HelloFormStuffActivity.java:38)
04-12 09:13:55.903: ERROR/AndroidRuntime(362): at java.lang.Thread.run(Thread.java:1096)
04-12 09:13:55.903: ERROR/AndroidRuntime(362): Caused by: java.lang.NoClassDefFoundError: javax.naming.directory.InitialDirContext
04-12 09:13:55.903: ERROR/AndroidRuntime(362): at org.jivesoftware.smack.util.DNSUtil.<clinit>(DNSUtil.java:50)
04-12 09:13:55.903: ERROR/AndroidRuntime(362): ... 4 more
我不知道为什么会出现这个错误。 任何人都可以帮助我吗?
答案 0 :(得分:5)
ConnectionConfiguration config = new ConnectionConfiguration(“chat.facebook.com”,5222,“chat.facebook.com”);
XMPPConnection myConn = new XMPPConnection(config);
config.setSASLAuthenticationEnabled(true);
config.setDebuggerEnabled(true);
try{
myConn.connect();
//username is no @chat.facebook.com
myConn.login("rajeshXXXXX","XXXXXXX" );
}
catch (Exception e) {
System.out.println(e.toString());
}
//最终我的工作正常,请使用asmack-2010.05.07.jar GIT中://gist.github.com/925250.git
答案 1 :(得分:2)
好像你正在使用Ignite的Smack API。最初的Smack API用于桌面使用,并使用用于LDAP和其他与目录相关的东西的Java命名和目录接口(JNDI)。 JNDI不包含在Android中,即包javax.naming不存在。有一个名为asmack的Android端口可供您使用。你只需要用asmack的jar替换Smack jar。
您可以在此处找到asmack:https://github.com/flowdalic/asmack
答案 2 :(得分:2)
我更新了eclipse的android插件以及android SDK工具/平台工具后我得到了这个错误(我的项目在我更新之前工作正常)。
要修复我去了属性 - &gt; Java构建路径 - &gt;订单和导出选项卡。我选中了我正在使用的asmack jar旁边的框(来自BEEM的那个)。然后我把它移到了顶部。最初它不会起作用,除非它在顶部,所以一定要试试。