마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

final Edittext 에러....

0 추천
public class TCPClient extends Activity implements Runnable {
 
final EditText msg = (EditText) findViewById(R.id.message);  
final Button sendButton = (Button) findViewById(R.id.sendserver);
 
08-20 18:29:18.898: E/AndroidRuntime(27508): at com.example.androidserver.TCPClient.<init>(TCPClient.java:19)
 

이렇게 에러가 뜹니다..... 왜그런지 모르겟네요 ㅠㅠ message위에 마우스 올리면 res/layout 에잇는걸로 잡히는데
왜왜왜! 에러가 뜨는지 모르겟습니다.

모르겟다zz (650 포인트) 님이 2013년 8월 20일 질문

1개의 답변

0 추천
setContentView 한 xml이 다른 것일 수도 있고요

setContentView 보다 먼저 저 코드가 온 것일 수도 있고요.

message 라는 뷰가 xml에는 EditText로 되어 있지 않을 수도 있고요.

 

저렇게만 올려주시면 뭐가 문제인지 누구도 알 수 없습니다.

로그 내용 전체와 관련 소스를 같이 올리셔야죠.

 

저렇게 단편적으로만 올리시면 누가 어떻게 알겠습니까.

 

좋은 답변을 받고 싶으시면 좋은 질문을 올리셔야 합니다.
원조안드로이드 (58,190 포인트) 님이 2013년 8월 20일 답변
public class SocketTest extends Activity {
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Thread sThread = new Thread(new TCPServer());
        Thread cThread = new Thread(new TCPClient());
        sThread.start();
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
        }

        cThread.start();
    }
   
    public class TCPServer implements Runnable {

        public static final String SERVERIP = "------------";
        public static final int SERVERPORT = 8888;

        public void run() {
            try {
                Log.d("TCP", "S: Connecting...");

                ServerSocket serverSocket = new ServerSocket(SERVERPORT);
                while (true) {
                    Socket client = serverSocket.accept();
                    Log.d("TCP", "S: Receiving...");
                    try {
                        BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
                        String str = in.readLine();
                        Log.d("TCP", "S: Received: '" + str + "'");
                    } catch (Exception e) {
                        Log.e("TCP", "S: Error", e);
                    } finally {
                        client.close();
                        Log.d("TCP", "S: Done.");
                    }

                }

            } catch (Exception e) {
                Log.e("TCP", "S: Error", e);
            }
        }
    }

    public class TCPClient extends Activity implements Runnable {

        final EditText msg = (EditText) findViewById(R.id.message);
        final Button sendButton = (Button) findViewById(R.id.sendserver);

        public void run() {
            sendButton.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    try {

                        InetAddress serverAddr = InetAddress.getLocalHost();
                        Log.d("TCP", "C: Connecting...");
                        Socket socket = new Socket(serverAddr, TCPServer.SERVERPORT);
                        String message = msg.toString();
                        try {
                            Log.d("TCP", "C: Sending: '" + message + "'");
                            PrintWriter out = new PrintWriter(
                                    new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);

                            out.println(message);
                            Log.d("TCP", "C: Sent.");
                            Log.d("TCP", "C: Done.");

                        } catch (Exception e) {
                            Log.e("TCP", "S: Error", e);
                        } finally {
                            socket.close();
                        }
                    } catch (Exception e) {
                        Log.e("TCP", "C: Error", e);
                    }
                }
            });

        }
    }
}
이렇게 되어잇어요 ㅠㅠ
...