我使用Smack API开发多用户游戏客户端。 我的应用程序出现问题:我可以向服务器发送消息和请求,但我的应用程序无法读取它的响应。Smack异常 - 由我的Java安装或Smack导致
Exception in thread "Smack Packet Reader (0)" java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.jivesoftware.smack.provider.ProviderManager.initialize(ProviderManager.java :193)
at org.jivesoftware.smack.provider.ProviderManager.<init>(ProviderManager.java:436)
at org.jivesoftware.smack.provider.ProviderManager.getInstance(ProviderManager.jav a:134)
at org.jivesoftware.smack.util.PacketParserUtils.parseIQ(PacketParserUtils.java:30 3)
at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:229)
at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:43)
at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:70)
Caused by: java.lang.NullPointerException
at java.util.TimeZone.parseCustomTimeZone(TimeZone.java:767)
at java.util.TimeZone.getTimeZone(TimeZone.java:471)
at java.util.TimeZone.getTimeZone(TimeZone.java:465)
at org.jivesoftware.smackx.workgroup.packet.TranscriptsProvider.<clinit>(Transcrip tsProvider.java:44)
... 9 more
No response from the server.:
这不是一个网络(防火墙,NAT ...)问题(在另一台Macintosh在同一子网内,同样的代码没有例外运行良好)。我检查了我的MacOS防火墙,看起来好了......我能做些什么来解决这个问题? 我不知道这个问题取决于java还是Smack ... 在此先感谢。
你可以传递'null'到'parseCustomTimeZone'吗? –
没问题。我没有使用Smack,但是由于假定传入非null参数的方法,我经常会看到来自Java库的这些异常。最简单的测试方法是尝试直接使用'null'调用它。 –
感谢您的回复。这是不可能的,因为我不使用这种方法...也许Smack在API中的某个地方使用这种方法,但这是一个奇怪的问题,因为相同的代码在另一台计算机上运行良好。 – Davide