2014-11-06 69 views
2

它不斷給我錯誤在xmppConnection.connect();快速blox使用Smack庫連接

public static final String CHAT_SERVER = QBChatUtils.getChatServerDomain(); 
public void getusers() 
{ 
    XMPPConnection xmppConnection = new XMPPConnection(CHAT_SERVER); 
    try { 
     // Chat action 1 -- create connection. 
     Connection.DEBUG_ENABLED = true; 
     xmppConnection.connect(); 
     xmppConnection.login(chatLogin, password); 
     Roster roster = xmppConnection.getRoster(); 
     Collection<RosterEntry> entries = roster.getEntries(); 
     Presence presence; 

     for(RosterEntry entry : entries) { 
      presence = roster.getPresence(entry.getUser()); 

      System.out.println(entry.getUser()); 
      System.out.println(presence.getType().name()); 
      System.out.println(presence.getStatus()); 
     } 
    } catch (XMPPException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

錯誤報告是這樣

11-06 15:24:08.904: E/AndroidRuntime(10981): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2785) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at android.app.ActivityThread.access$1900(ActivityThread.java:150) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1395) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at android.os.Handler.dispatchMessage(Handler.java:99) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at android.os.Looper.loop(Looper.java:213) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at android.app.ActivityThread.main(ActivityThread.java:5225) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at java.lang.reflect.Method.invokeNative(Native Method) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at java.lang.reflect.Method.invoke(Method.java:525) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at dalvik.system.NativeStart.main(Native Method) 
11-06 15:24:08.904: E/AndroidRuntime(10981): Caused by: android.os.NetworkOnMainThreadException 
11-06 15:24:08.904: E/AndroidRuntime(10981): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1142) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at java.net.InetAddress.lookupHostByName(InetAddress.java:385) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at java.net.InetAddress.getAllByName(InetAddress.java:214) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at org.jivesoftware.smack.proxy.DirectSocketFactory.createSocket(DirectSocketFactory.java:30) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPConnection.java:547) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:994) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at com.momena.chat.MyChatController.getusers(MyChatController.java:32) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at com.momena.chat.MessagesService.onStart(MessagesService.java:46) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at android.app.Service.onStartCommand(Service.java:450) 
11-06 15:24:08.904: E/AndroidRuntime(10981): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2768) 
11-06 15:24:08.904: E/AndroidRuntime(10981): ... 10 more 
+0

您必須在AsyncTask()而不是主線程中運行代碼。 – 2014-11-06 10:36:00

+0

它未在主線程中運行,它是從服務調用的類的成員 – 2014-11-06 10:37:32

+0

請檢查錯誤日誌NetworkOnMainThreadException。 – 2014-11-06 10:39:15

回答

1

你不能爲此你必須使用ServicesAsyncTask後臺運行或長期運行過程中主要還是UI線程。

+0

它沒有在主線程中運行,它是從服務中調用的類的成員 – 2014-11-06 10:39:33

+0

在每個答案中都不需要添加這個句子。**嘗試這種方式,希望這可以幫助您解決問題。**。 – 2014-11-06 10:40:55

+0

我知道它的主題,但我可以提出這個問題的私人,因爲我正在做一個任務,我不能從互聯網複製 – 2014-11-06 11:06:55