我遇到一个奇怪的问题,即无法将数据包转换为消息。我在这一行收到错误: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);
答案 0 :(得分:2)
我要猜测,因为你在支持instanceof的情况下完全限定了Message,但是在你的演员阵容中没有,所以你的演员阵容中使用的Message不是正确的Message类。
检查您的导入,看看您有哪些消息,它可能不是 org.jivesoftware.smack.packet.Message 。