java.lang.NullPointerException: Attempt to invoke virtual method 'void java.io.Writer.write(java.lang.String)' on a null object reference 12-09 07:18:35.259 2419-2419/com.end.myapplication W/System.err:
at com.end.myapplication.MainActivity$SendingRunnable.run(MainActivity.java:124) 12-09 07:18:35.259 2419-2419/com.end.myapplication W/System.err:
at android.os.Handler.handleCallback(Handler.java:751) 12-09 07:18:35.259 2419-2419/com.end.myapplication W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95) 12-09 07:18:35.259 2419-2419/com.end.myapplication W/System.err: at android.os.Looper.loop(Looper.java:154) 12-09 07:18:35.259 2419-2419/com.end.myapplication W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6119) 12-09 07:18:35.259 2419-2419/com.end.myapplication W/System.err: at java.lang.reflect.Method.invoke(Native Method) 12-09 07:18:35.259 2419-2419/com.end.myapplication W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 12-09 07:18:35.259 2419-2419/com.end.myapplication W/System.err:
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
MainActivity
package com.end.myapplication;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
private String html = "";
private Handler mHandler;
private Socket socket;
private BufferedReader networkReader;
private BufferedWriter networkWriter;
private String ip = "192.168.56.1"; // IP
private int port = 5516; // PORT번호
boolean check=false;
EditText et;
TextView tv;
NetworkThread thread;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et = (EditText) findViewById(R.id.EditText01);
Button btn = (Button) findViewById(R.id.Button01);
tv = (TextView) findViewById(R.id.TextView01);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (et.getText().toString() != null || !et.getText().toString().equals("")) {
check=true;
}
}
});
}
@Override
protected void onResume() {
super.onResume();
new Thread(){
@Override
public void run(){
try {
socket = new Socket(ip, port);
networkWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
networkReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
} catch (IOException e1) {
e1.printStackTrace();
}
}
}.start();
thread = new NetworkThread(networkReader, networkWriter);
thread.start();
}
private class NetworkThread extends Thread {
BufferedReader br;
BufferedWriter bw;
Handler mHandler;
SendingRunnable sendingRunnable;
private NetworkThread(BufferedReader br, BufferedWriter bw){
this.br = br;
this.bw = bw;
mHandler = new Handler();
sendingRunnable = new SendingRunnable(bw);
}
@Override
public void run() {
super.run();
boolean isError = false;
String result = "";
String error = "";
try{
this.bw.write("CONNECTED\n");
this.bw.flush();
}catch (Exception e){
e.printStackTrace();
}
while (true){
try{
if (check){
mHandler.post(sendingRunnable);
}
}catch (Exception e){
e.printStackTrace();
}
}
}
}
private class SendingRunnable implements Runnable {
BufferedWriter bw;
private SendingRunnable(BufferedWriter bw){
this.bw = bw;
}
@Override
public void run() {
String formula = et.getText().toString();
try{
bw.write(formula+"\n");
bw.flush();
et.setText("");
}catch (Exception e){e.printStackTrace();}
}
}
}