代码如下:
public class get extends MainActivity {
Socket socket;
BufferedReader in;
private EditText OP;
EditText dose=(EditText)findViewById(R.id.editText);
public get() {
try {
Socket socket = new Socket("192.168.11.254", 8080);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
new gd().start();
} catch (IOException e) {
e.printStackTrace();
}
}
class gd extends Thread {
public void run() {
while (this.isAlive()) {
try {
String kk = in.readLine();
int k = (kk.lastIndexOf("dose"));
String z;
z = kk.substring(k + 5, k + 10);
Thread.sleep(50);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
提示如下:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.Window.findViewById(int)' on a null object reference
如何解决?
这个报错不取决于这段代码。错误的原因是系统没有找到对应控件的ID。觉得可能是控件1,控件的ID匹配错了。2,布局文件里面的控件与代码里面控件的声明不匹配。
再检查一下。
这个错误叫空指针异常:.NullPointerException,看提示是你这段代码错了:EditText dose=(EditText)findViewById(R.id.editText);,你找一下这个editText
这个ID是否是写在了EditText控件上了,还是写错了地方
你的get类继承自MainActivity,那么它应该也是一个Activity,那么你的onCreate方法呢?findViewById这种应该卸载onCreate里边
EditText dose=(EditText)findViewById(R.id.editText);这个应该写在onCreate()方法里面的
Socket socket与BufferedReader in实例化了两次,
Socket socket = new Socket("192.168.11.254", 8080);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
把这两句改为
socket = new Socket("192.168.11.254", 8080);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
试试