我开始使用asmack for Android来补充我已经构建的Java即时消息应用程序。在获取ClassNotFound异常和查找我的服务器错误(尽管地址和端口正确)后,我读到了有关建议初始化静态类的SmackAndroid调用。 我把它编码如下:
Context context = getApplicationContext();
SmackAndroid asmk = SmackAndroid.init(context);
在建立任何XMPP连接之前,我将这些代码行添加到我的应用程序中,但它给了我一个完全无法解决的新错误。
java.lang.RuntimeException: Unable to start activity
ComponentInfo{cit.jordan.portablechatter/cit.jordan.portablechatter.MainActivity}:
java.lang.IllegalStateException: Could not init static class blocks
我在这里使用asmack 0.8.2 jar for android 17:http://asmack.freakempire.de/
答案 0 :(得分:1)
我也遇到了同样的问题。 然后我找到了一个解决方案,如下所示。
首先下载以下jar latest asmack jar
SmackAndroid.init(context);
AndroidConnectionConfiguration mAndroidConnectionConfiguration=new AndroidConnectionConfiguration(host, port);
我认为这将解决您的连接问题。 以上方法对我有用,所以我希望它对你有所帮助。
答案 1 :(得分:0)
InitStaticCode.java:48引发异常,我收到了其他用户的类似报告。我总是想知道为什么它适用于大多数用户,只有少数用户。
您可以尝试删除InitStaticCode.java:34中的getClass()
来电并查看其是否有效。如果您无法为自己修改和构建aSmack,另一个想法是更改您用作参数的上下文类型:试用getApplicationContext()
或getBaseContext
。也许这有帮助。
我已将此作为aSmack's issue # 33输入。也许我觉得这个周末有时间解决它。