Невозможно привести из пакета в сообщение с помощью SMACK API - PullRequest
0 голосов
/ 05 июля 2011

У меня странная проблема: я не могу преобразовать пакет в сообщение. Я получаю сообщение об ошибке в этой строке: Message msg = (Message) arg0; Это говорит

«Невозможно передать из пакета в сообщение»

// Код

     connection.connect();
     connection.login(uN, pw);

    PacketTypeFilter filter = new PacketTypeFilter(Message.class);
    PacketCollector myCollector = connection.createPacketCollector(filter);
    PacketListener myListener = new PacketListener(){

            @Override
            public void processPacket(Packet arg0) {
                // TODO Auto-generated method stub
                if(arg0 instanceof org.jivesoftware.smack.packet.Message){
                        Message msg = (Message) arg0;
                        }
                    }

                };
    connection.addPacketListener(myListener, filter);

1 Ответ

2 голосов
/ 05 июля 2011

Я собираюсь предположить, что, поскольку у вас есть Сообщение, полностью квалифицированное в проверке для instanceof, но не в соответствии с вашим приведением, то Сообщение, используемое в вашем приведении, не является правильным классом Сообщений.

Проверкаваш импорт и посмотрите, что Сообщение у вас там, это, вероятно, не org.jivesoftware.smack.packet.Message .

...