1

だから私は新しいソケットを作るのに問題があります。このプログラムはジンジャーブレッドで完全に動作しましたが、HTC センセーション 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 に答える