2

プロジェクトで aSmack を機能させようとしています。Eclipse で標準プロジェクトを作成し、jar (smack.jar、smackx-debug.jar、smackx-jingle.jar、smackx.jar) を libs フォルダーに追加しました。XMPP クラスの使用を開始しましたが、動作していないため、プロジェクトを適切にセットアップするために他に何かする必要があるかどうかはわかりません (後で)。アプリを実行するとこのエラーが発生Could not find class 'java.beans.PropertyDescriptor', referenced from method org.jivesoftware.smack.util.PacketParserUtils.parseWithIntrospectionし、メッセージを送信しようとするとこのエラーが発生java.lang.IllegalStateException: Not connected to server.し、at org.jivesoftware.smack.XMPPConnection.sendPacket(XMPPConnection.java:445)

これは私が使用しているコードです

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());
        }
      });
    }
  });
}
}

XMPP クライアントでこの問題が発生したことは誰にでもあります。それはjarファイルの問題ですか、それともコード内の何かを変更する必要があるものですか...

4

1 に答える 1

5

smack jar ではなく、asmack jar を使用していますか? このエラーは、通常のスマックを使用している場合に発生するものに見えるためです。

于 2012-06-13T12:38:19.777 に答える