AnsweredAssumed Answered

Using smack 4.1 on android, giving exception in connection

Question asked by Sarmad on Apr 19, 2015
Latest reply on Apr 20, 2015 by Flow

I'm trying to make a connection with GoogleTalk in android using Smack 4.1.

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.j ava:213)

    at org.jivesoftware.smack.SmackInitialization.parseClassesToLoad(SmackInitializati on.java:193)

    at org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitializatio n.java:163)

    at org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitializatio n.java:148)

    at org.jivesoftware.smack.SmackInitialization.<clinit>(SmackInitialization.java:11 6)

 

    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 ?

 

note: I've tested it on emulator as well as on real device.

 

**EDIT**

 

I've added all the jars which were included in Smack 4.1

Outcomes