一个关于Android编成问题 3C

代码如下:
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

如何解决?

5个回答

这个报错不取决于这段代码。错误的原因是系统没有找到对应控件的ID。觉得可能是控件1,控件的ID匹配错了。2,布局文件里面的控件与代码里面控件的声明不匹配。
再检查一下。

LONG_Runing
Rie_Long 回复Ch_robert: 看一下这里你这个EditText的对象有两个,看下你的点击事件里面获取EditText里面的内容是哪个对象?
接近 4 年之前 回复
LONG_Runing
Rie_Long 回复Ch_robert: 那就建议clean一下,可能你对布局文件进行修改后,没有及时生成对应R文件的id
接近 4 年之前 回复
Ch_robert
Ch_robert 都检查了没问阿
接近 4 年之前 回复

这个错误叫空指针异常:.NullPointerException,看提示是你这段代码错了:EditText dose=(EditText)findViewById(R.id.editText);,你找一下这个editText
这个ID是否是写在了EditText控件上了,还是写错了地方

你的get类继承自MainActivity,那么它应该也是一个Activity,那么你的onCreate方法呢?findViewById这种应该卸载onCreate里边

huaheshangxo
苍蝇小黑 回复Ch_robert: 在线程中发送消息,在Activity中用Handler处理,修改editText;
接近 4 年之前 回复
Ch_robert
Ch_robert 写错了,不继承MA 只是一个类 我想让gd线程修改那个textEdit 怎么办呢?
接近 4 年之前 回复

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()));
试试

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问