Android smack 4.1 issue with connection

时光总嘲笑我的痴心妄想 提交于 2020-01-15 04:04:49

问题


I'm trying to make a connection with GoogleTalk in android using Smack. I've followed numerous tutorials examples on the internet yet still I can't seem to make it work.

public static final String HOST = "talk.google.com";

public static final int PORT = 5222;
public static final String SERVICE = "gmail.com";
public static final String USERNAME = "myemail@gmail.com";
public static final String PASSWORD = "mypassword";

My above credentials are correct...

 XMPPTCPConnectionConfiguration.Builder connConfig = XMPPTCPConnectionConfiguration.builder();
   connConfig.setSecurityMode(ConnectionConfiguration.SecurityMode.required);
   connConfig.setUsernameAndPassword(USERNAME, PASSWORD);
   connConfig.setServiceName(SERVICE);
   connConfig.setHost(HOST);
   connConfig.setPort(PORT);
   connConfig.setDebuggerEnabled(true);
   //setCompressionEnabled(false).build();
   //(HOST, PORT, SERVICE);
   XMPPTCPConnection connection = new  XMPPTCPConnection(connConfig.build());
     try {
       connection.connect();
       Log.i("XMPPChatDemoActivity",  "[SettingsDialog] Connected to "+connection.getHost());
     } catch (XMPPException ex) {
         Log.e("XMPPChatDemoActivity",  "[SettingsDialog] Failed to connect to "+ connection.getHost());
         Log.e("XMPPChatDemoActivity", ex.toString());
         setConnection(null);
     }
     catch(SmackException ex){
         Log.e("XMPPChatDemoActivity",  "[SettingsDialog] Failed to connect to "+ connection.getHost());
         Log.e("XMPPChatDemoActivity", ex.toString());
         setConnection(null);
     }
     catch(IOException ex){
         Log.e("XMPPChatDemoActivity",  "[SettingsDialog] Failed to connect to "+ connection.getHost());
         Log.e("XMPPChatDemoActivity", ex.toString());
         setConnection(null);
     }

I get java.lang.ExceptionInInitializeError

on this line

XMPPTCPConnectionConfiguration.Builder connConfig = XMPPTCPConnectionConfiguration.builder(); //line 184

Here is the complete stack trace:

 FATAL EXCEPTION: Thread-120
java.lang.ExceptionInInitializerError
at com.example.samsungchatexample.MainActivity$4.run(MainActivity.java:184)
at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.ExceptionInInitializerError
at org.jivesoftware.smack.SmackConfiguration.getVersion(SmackConfiguration.java:96)
at org.jivesoftware.smack.ConnectionConfiguration.<clinit>(ConnectionConfiguration.java:38)

Caused by: java.lang.ExceptionInInitializerError
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:217)
at org.jivesoftware.smack.SmackInitialization.loadSmackClass(SmackInitialization.java:213)
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)

Caused by: java.lang.NoClassDefFoundError: javax.naming.directory.InitialDirContext
at org.jivesoftware.smack.util.dns.javax.JavaxResolver.<clinit>(JavaxResolver.java:50)

Can someone please help me with this ? I've tested this on KitKat and JellyBean Same exception on both so this is not a glitch with context to OS versions. What am I missing ?


回答1:


I do face problem while establishing a connection using SMACK 4.1. When I included all of these libraries mentioned below then I successfully established a connection. Give it a try :) Hope you succeed.

  1. jxmpp-core-0.4.1
  2. jxmpp-util-cache-0.4.1
  3. minidns-0.1.1
  4. smack-android-4.1.0.jar
  5. smack-android-extensions-4.1.0
  6. smack-core-4.1.0
  7. smack-extensions-4.1.0
  8. smack-im-4.1.0
  9. smack-tcp-4.1.0


来源:https://stackoverflow.com/questions/29727997/android-smack-4-1-issue-with-connection

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!