SmackAndroid.init()抛出IllegalStateException:“无法初始化静态类块”

时间:2013-04-09 19:03:14

标签: android asmack

我开始使用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/

2 个答案:

答案 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输入。也许我觉得这个周末有时间解决它。