I am trying to make aSmack work in my project. Created a standard project in eclipse, added the jars (smack.jar, smackx-debug.jar, smackx-jingle.jar, smackx.jar) to libs folder . Started using the XMPP classes, but I am not sure if there’s something else I should do to properly set up the project (later on that), since it’s not working. when i run the app i am getting this error Could not find class 'java.beans.PropertyDescriptor', referenced from method org.jivesoftware.smack.util.PacketParserUtils.parseWithIntrospection, when i try to send message i am getting this error java.lang.IllegalStateException: Not connected to server.and at org.jivesoftware.smack.XMPPConnection.sendPacket(XMPPConnection.java:445)
this is the code i am using
public class ClientJabberActivity extends Activity {
private final static String server_host = "aaaaa.com" ;
private final static int SERVER_PORT = 5222 ;
private final static String SERVICE_NAME = "gmail.com" ;
private final static String LOGIN = "xxxx@name.com" ;
private final static String PASSWORD = "yyyy";
ArrayList<String> m_discussionThread;
ArrayAdapter<String> m_discussionThreadAdapter;
XMPPConnection m_connection;
private Handler m_handler;
@ Override
public void onCreate (Bundle savedInstanceState) {
super . onCreate (savedInstanceState);
setContentView (R.layout.main);
m_handler = new Handler ();
try {
initConnection ();
} catch (XMPPException e) {
e. printStackTrace ();
}
final EditText recipient = (EditText) this . findViewById (R.id.recipient);
final EditText message = (EditText) this . findViewById (R.id.message);
ListView list = (ListView) this . findViewById (R.id.thread);
m_discussionThread = new ArrayList<String>();
m_discussionThreadAdapter = new ArrayAdapter<String> ( this ,
R.layout.multi_line_list_item, m_discussionThread);
list.setAdapter(m_discussionThreadAdapter);
Button send = (Button) this . findViewById (R.id.send);
send. setOnClickListener ( new View. OnClickListener () {
public void onClick (View view) {
String to = recipient.getText().toString ();
String text = message.getText().toString ();
Message msg = new Message(to, Message.Type.chat);
msg.setBody(text);
m_connection.sendPacket (msg);
m_discussionThread. add ( " Me : " );
m_discussionThread. add (text);
m_discussionThreadAdapter. notifyDataSetChanged ();
}
} );
}
private void initConnection () throws XMPPException {
ConnectionConfiguration config = new ConnectionConfiguration (server_host, SERVER_PORT, SERVICE_NAME);
m_connection = new XMPPConnection (config);
m_connection.connect ();
m_connection.login(LOGIN, PASSWORD);
Presence presence = new Presence(Presence.Type.available);
Log.i("ID", ""+presence);
m_connection.sendPacket (presence);
PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
m_connection.addPacketListener(new PacketListener() {
public void processPacket(Packet packet) {
Message message = (Message) packet;
if (message.getBody() != null) {
String fromName = StringUtils.parseBareAddress(message.getFrom());
m_discussionThread.add(fromName + ":");
m_discussionThread.add(message.getBody());
m_handler.post(new Runnable() {
public void run() {
m_discussionThreadAdapter.notifyDataSetChanged();
}
});
}
}
}, filter);
ChatManager chatmanager = m_connection.getChatManager();
chatmanager.addChatListener(new ChatManagerListener()
{
public void chatCreated(final Chat chat, final boolean createdLocally)
{
chat.addMessageListener(new MessageListener()
{
public void processMessage(Chat chat, Message message)
{
System.out.println("Received message: "
+ (message != null ? message.getBody() : "NULL"));
Log.i("CHAT USER", "Received message is: "+message.getBody());
}
});
}
});
}
}
Anybody have experienced this problem in your XMPP client. is it problem in jar files or anything i have to change any thing in my code…
Are you sure that you are using the asmack jars and not the smack jars? because this error looks something that you will get if you are using normal smack.