android - openfire ReconnectionManager java.lang.IllegalStateException
问题描述
我在 android 中使用 Openfire aSmack 库,但是 ReconnectionManager.java 总是得到这样的异常并且在我自己的文件中找不到特定的代码行。那么我该怎么做才能避免这个异常呢?
java.lang.IllegalStateException:
at org.jivesoftware.smack.XMPPConnection.login (XMPPConnection.java:217)
at org.jivesoftware.smack.XMPPConnection.connect (XMPPConnection.java:1010)
at org.jivesoftware.smack.ReconnectionManager$2.run (ReconnectionManager.java:122)
java.lang.NullPointerException:
at org.jivesoftware.smack.XMPPConnection.initConnection (XMPPConnection.java:617)
at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration (XMPPConnection.java:570)
at org.jivesoftware.smack.XMPPConnection.connect (XMPPConnection.java:999)
at org.jivesoftware.smack.ReconnectionManager$2.run (ReconnectionManager.java:122)
java.lang.IllegalThreadStateException:
at java.lang.Thread.start (Thread.java:868)
at org.jivesoftware.smack.PacketWriter.startup (PacketWriter.java:119)
at org.jivesoftware.smack.XMPPConnection.initConnection (XMPPConnection.java:608)
at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration (XMPPConnection.java:570)
at org.jivesoftware.smack.XMPPConnection.connect (XMPPConnection.java:999)
at org.jivesoftware.smack.ReconnectionManager$2.run (ReconnectionManager.java:122)
java.lang.IllegalStateException:
at org.jivesoftware.smack.XMPPConnection.sendPacket (XMPPConnection.java:488)
at org.jivesoftware.smack.NonSASLAuthentication.authenticate (NonSASLAuthentication.java:69)
at org.jivesoftware.smack.SASLAuthentication.authenticate (SASLAuthentication.java:363)
at org.jivesoftware.smack.XMPPConnection.login (XMPPConnection.java:230)
at org.jivesoftware.smack.XMPPConnection.connect (XMPPConnection.java:1010)
at org.jivesoftware.smack.ReconnectionManager$2.run (ReconnectionManager.java:122)
java.lang.IllegalThreadStateException:
at java.lang.Thread.start (Thread.java:868)
at org.jivesoftware.smack.PacketReader.startup (PacketReader.java:103)
at org.jivesoftware.smack.XMPPConnection.initConnection (XMPPConnection.java:611)
at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration (XMPPConnection.java:570)
at org.jivesoftware.smack.XMPPConnection.connect (XMPPConnection.java:999)
at org.jivesoftware.smack.ReconnectionManager$2.run (ReconnectionManager.java:122)
java.lang.IllegalThreadStateException:
at java.lang.Thread.start (Thread.java:868)
at org.jivesoftware.smack.PacketWriter.startKeepAliveProcess (PacketWriter.java:137)
at org.jivesoftware.smack.XMPPConnection.initConnection (XMPPConnection.java:617)
at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration (XMPPConnection.java:570)
at org.jivesoftware.smack.XMPPConnection.connect (XMPPConnection.java:999)
at org.jivesoftware.smack.ReconnectionManager$2.run (ReconnectionManager.java:122)
这是我的代码:
static{
try{
Class.forName("org.jivesoftware.smack.ReconnectionManager");
}catch(Exception e){
e.printStackTrace();
}
}
connConfig.setReconnectionAllowed(true);
connConfig.setSASLAuthenticationEnabled(true);
解决方案
推荐阅读
- c++ - C++ | Win32 API | 卡在白屏| 无效矩形()
- java - 为什么我在编译时似乎找不到我的程序中的错误。需要帮助
- operating-system - 为什么像 WRITE(2) 这样的系统调用不提供缓冲区来提高速度?
- javascript - 如何以一种不会中断使用普通的旧 vanilla JavaScript 访问对象的方式导出 TypeScript 类
- php - 使用 yahoo 电子邮件地址帐户时无法发送消息
- powerbi - 仅显示最后一列的总计
- python - 订阅 bitFlyer WebSocket
- python - 无法将 fcitx 与自行编写的 Qt 应用程序一起使用
- operators - 运算符 := 是什么意思?
- .htaccess - 将旧域重定向到新域加子页面