我非常新的Android應用程序的開發,我已經創建了我下面的活動的onCreate()以下:通過套接字連接到服務器的Android
public String test(){
String test = "";
try{
Socket s = new Socket(InetAddress.getByName("ipaddress"), port#);
test +=(s.isConnected());
BufferedReader readFromHost = new BufferedReader(new InputStreamReader(s.getInputStream()));
readFromHost.ready();
test += (readFromHost.readLine());
s.close();
}catch(Exception e){
e.printStackTrace();
}
return test;
}
然後,這只是路線爲:
textView2.setText(test());
但是從服務器抓取的字符串「test_message」沒有出現在文本視圖中。然而,當我只是做
textView2.setText("hi");
它出現在視圖,或者如果我運行在Java測試()Android的程序之外產生的「test_message」出現在控制檯中。任何想法爲什麼它不會出現在android運行時?港口對待不同?任何幫助都會很棒。
附加的是LogCat。似乎有一個「NetworkOnMainThreadException」?
程序中出現的所有內容都是您單擊一個按鈕,該按鈕會用textview打開一個新的活動。
登錄:
06-09 12:13:18.189: W/ApplicationPackageManager(4768): getCSCPackageItemText()
06-09 12:13:18.239: E/MoreInfoHPW_ViewGroup(4768): Parent view is not a TextView
06-09 12:13:18.369: E/SpannableStringBuilder(4768): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
06-09 12:13:18.369: E/SpannableStringBuilder(4768): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
06-09 12:13:22.773: W/ApplicationPackageManager(4768): getCSCPackageItemText()
06-09 12:13:22.783: W/System.err(4768): android.os.NetworkOnMainThreadException
06-09 12:13:22.783: W/System.err(4768): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1156)
06-09 12:13:22.783: W/System.err(4768): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
06-09 12:13:22.783: W/System.err(4768): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
06-09 12:13:22.783: W/System.err(4768): at libcore.io.IoBridge.connect(IoBridge.java:112)
06-09 12:13:22.783: W/System.err(4768): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
06-09 12:13:22.783: W/System.err(4768): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
06-09 12:13:22.783: W/System.err(4768): at java.net.Socket.startupSocket(Socket.java:566)
06-09 12:13:22.783: W/System.err(4768): at java.net.Socket.<init>(Socket.java:226)
06-09 12:13:22.783: W/System.err(4768): at com.example.myfirstapp.DisplayMessageActivity.test(DisplayMessageActivity.java:42)
06-09 12:13:22.783: W/System.err(4768): at com.example.myfirstapp.DisplayMessageActivity.onCreate(DisplayMessageActivity.java:31)
06-09 12:13:22.783: W/System.err(4768): at android.app.Activity.performCreate(Activity.java:5426)
06-09 12:13:22.783: W/System.err(4768): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
06-09 12:13:22.783: W/System.err(4768): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2269)
06-09 12:13:22.783: W/System.err(4768): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363)
06-09 12:13:22.783: W/System.err(4768): at android.app.ActivityThread.access$900(ActivityThread.java:161)
06-09 12:13:22.783: W/System.err(4768): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1265)
06-09 12:13:22.783: W/System.err(4768): at android.os.Handler.dispatchMessage(Handler.java:102)
06-09 12:13:22.783: W/System.err(4768): at android.os.Looper.loop(Looper.java:157)
06-09 12:13:22.783: W/System.err(4768): at android.app.ActivityThread.main(ActivityThread.java:5356)
06-09 12:13:22.783: W/System.err(4768): at java.lang.reflect.Method.invokeNative(Native Method)
06-09 12:13:22.783: W/System.err(4768): at java.lang.reflect.Method.invoke(Method.java:515)
06-09 12:13:22.783: W/System.err(4768): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
06-09 12:13:22.783: W/System.err(4768): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
06-09 12:13:22.783: W/System.err(4768): at dalvik.system.NativeStart.main(Native Method)
06-09 12:13:22.803: E/MoreInfoHPW_ViewGroup(4768): Parent view is not a TextView
logcat會說什麼嗎? – eleven
@Foxinsocks「UI線程中的網絡操作」也許? – harism
@harism添加完整日誌到您的問題。 – eleven