我開始使用asmack for Android來補充我已經構建的Java即時消息傳遞應用程序。經過一段時間,獲取ClassNotFound異常和錯誤,找到我的服務器(儘管地址和端口是正確的),我讀了關於建議初始化靜態類的SmackAndroid調用。 我編碼,如下所示:SmackAndroid.init()拋出IllegalStateException異常:「無法初始化靜態類塊」
Context context = getApplicationContext();
SmackAndroid asmk = SmackAndroid.init(context);
我addded的幾行代碼,以我的應用程序建立任何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罐子這裏找到Android的17:http://asmack.freakempire.de/
感謝您的回覆。我已經嘗試過使用不同的應用程序上下文,都提供相同的錯誤。我嘗試了一些其他方法無濟於事。 SmackAndroid調用是否有任何解決方法?是否可以在程序中手動初始化這些類? – Joe 2013-04-10 17:57:34
不,但考慮到aSmack是開放源代碼的事實,您可以複製代碼並嘗試不帶'getClass()'的InitStaticCode。一些用戶報告說,這可以解決他們的問題。 – Flow 2013-04-10 18:59:29
它花了一段時間,但我今天嘗試了你的建議,我設法繞過這個問題。推薦的AndroidConnectionConfiguration調用反覆給了我DNS錯誤,所以我不得不使用標準的ConnectionConfiguration調用。目前正試圖弄清楚爲什麼客戶端在服務器的活動客戶端會話中顯示,但被標記爲脫機並且不能與其他客戶端交互。儘管如此,這可能是一個不同的問題。 – Joe 2013-04-11 18:00:55