1

所以我在制作新插座时遇到了问题。我有这个程序可以在姜饼上完美运行,但是自从我的 HTC sense xe 更新到 ICS 后,每次我尝试打开套接字时程序都会崩溃。我有一个程序将陀螺仪数据发送到本地网络上的服务器。自从出现这个问题以来,我已经将我的代码减少到仍然会导致问题的最小组件,所以就在这里。

package com.mytesting;

import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import java.io.*;
import java.net.*;

public class SocketTestingActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);      
        try {
            Socket clientSocket = new Socket("192.168.1.7", 23000);
        } catch (UnknownHostException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }


    }
}

我已经包括:

<uses-permission android:name="android.permission.INTERNET" />   

在清单文件中。

在 ICS 之前,所有这些东西都运行良好。现在,当我运行程序时,我只收到消息“不幸的是,SocketTesting 已停止”。

有谁知道我做错了什么,我对android编程和一般的java编程都很陌生。

感谢您的帮助,伙计们。

4

1 回答 1

1

在 ICS 中,您不能在 UI 线程上执行网络操作。将其移动到单独的线程或使用AsyncTask

于 2012-05-30T10:07:21.227 回答