2

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

我在这里找到了适用于 android 17 的 asmack 0.8.2 jar:http: //asmack.freakempire.de/

4

2 回答 2

1

我也面临同样的问题。然后我找到了一个解决方案,如下所示。

首先下载下面的jar 最新的asmack jar

SmackAndroid.init(context);
AndroidConnectionConfiguration mAndroidConnectionConfiguration=new AndroidConnectionConfiguration(host, port);

我认为这将解决您的连接问题。以上方法对我有用,所以我希望它对你有所帮助。

于 2013-04-29T04:13:03.897 回答
0

InitStaticCode.java:48引发了异常,我从另一个用户那里得到了类似的报告。我总是想知道为什么它适用于大多数用户,但只有少数用户。

您可以尝试删除InitStaticCode.java:34getClass()中的调用,看看它是否有效。另一个想法是,如果您无法自己修改和构建 aSmack,则可以更改您用作参数的上下文类型:尝试使用or 。也许这有帮助。getApplicationContext()getBaseContext

我已将此作为aSmack 的问题 #33输入。也许我这个周末找时间修一下。

于 2013-04-10T09:33:52.857 回答