2 ch robert Ch_robert 于 2016.04.04 19:51 提问

一个关于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

如何解决?

6个回答

LONG_Runing
LONG_Runing   2016.04.04 19:57

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

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

android 关于ExpandableListView的一个问题解决
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Wei_Smile
Wei_Smile   2016.04.04 21:18

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

huaheshangxo
huaheshangxo   2016.04.05 09:55

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

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

EditText dose=(EditText)findViewById(R.id.editText);这个应该写在onCreate()方法里面的

huixion
huixion   2016.04.06 13:41

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
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!