AnsweredAssumed Answered

IllegalArgumentException on load VCard with VCardManager Smack Android

Question asked by Stefan hennemann on Feb 23, 2016
Latest reply on Feb 24, 2016 by Stefan hennemann

Hi there,

 

I got a problem with loading a VCard from another user in smack for android. For example I am loading this VCard like this:

 

vcard = manager.loadVCard("example@anotherxmpp.com");

 

This throws the following error:

 

  Caused by: java.lang.IllegalArgumentException: Must have a local (user) JID set. Either you didn't configure one or you where not connected at least once

                                                                             at org.jivesoftware.smack.filter.IQReplyFilter.<init>(IQReplyFilter.java:94)

                                                                             at org.jivesoftware.smack.AbstractXMPPConnection.createPacketCollectorAndSend(Abst ractXMPPConnection.java:695)

                                                                             at org.jivesoftware.smackx.vcardtemp.VCardManager.loadVCard(VCardManager.java:125)

                                                                             at de.opiatefuchs.connection.Connection.loadVCard(Connection.java:1223)

                                                                             at de.opiatefuchs.connection.Connection$5.doInBackground(Connection.java:1336)

                                                                             at de.opiatefuchs.connection.Connection$5.doInBackground(Connection.java:1331)

                                                                             at android.os.AsyncTask$2.call(AsyncTask.java:292)

                                                                             at java.util.concurrent.FutureTask.run(FutureTask.java:237)

                                                                             at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)

                                                                             at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)

                                                                             at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)

                                                                             at java.lang.Thread.run(Thread.java:831)

 

I am definetely connected, that´s not the problem. At the old VCard a vcard was able to be loaded with vcard.load(connection,userJabberId); How should this be done via the VCardManager? Loading through VCard instead of VCardManager is deprecated, so how should I do this?

Outcomes