求助:Socket通信输入IP点击SEND闪退

[复制链接]
查看11 | 回复8 | 2021-1-27 06:46:25 | 显示全部楼层 |阅读模式
错误日志:Attempttoinvokevirtualmethod'java.io.OutputStreamjava.net.Socket.getOutputStream()'onanullobjectreference
atcom.example.myapplication.Main2Activity$4.run(Main2Activity.java:127)
错误部分代码:
newThread(){
@Override
publicvoidrun(){
try{
//socket.getInputStream()
DataOutputStreamwriter=newDataOutputStream(mSocket.getOutputStream());
writer.writeUTF(str);//写一个UTF-8的信息
Log.d("Main2Activity","发送消息");
System.out.println("发送消息");
}catch(IOExceptione){
e.printStackTrace();
}
}
}.start();
求大佬帮助!!
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:46:25 | 显示全部楼层
mSocket没初始化。
回复

使用道具 举报

千问 | 2021-1-27 06:46:25 | 显示全部楼层
你的mSocket对象生成了没?
回复

使用道具 举报

千问 | 2021-1-27 06:46:25 | 显示全部楼层
引用1楼jklwan的回复:mSocket没初始化。
写了这两行
mSocket=newSocket(et_ip.getText().toString(),1989);privateSocketmSocket;
回复

使用道具 举报

千问 | 2021-1-27 06:46:25 | 显示全部楼层
引用2楼m-oj的回复:你的mSocket对象生成了没?
写了这两行
mSocket=newSocket(et_ip.getText().toString(),1989);privateSocketmSocket;
回复

使用道具 举报

千问 | 2021-1-27 06:46:25 | 显示全部楼层
引用3楼qq_39190125的回复:写了这两行
mSocket=newSocket(et_ip.getText().toString(),1989);privateSocketmSocket;

先初始化再连接否则mSocket是null
回复

使用道具 举报

千问 | 2021-1-27 06:46:25 | 显示全部楼层
正常来说你发送前应该先判断socket对象是否为null且socket是否连接上了,如果不是则先重新初始化socket
回复

使用道具 举报

千问 | 2021-1-27 06:46:25 | 显示全部楼层
这种debug不就看到了,你的mSocket肯定是null了,空指针异常在新手博客中有说明https://blog.csdn.net/weimingjue/article/details/87921494还有些基础问题可以看看
回复

使用道具 举报

千问 | 2021-1-27 06:46:25 | 显示全部楼层
将这个方法writer.writeUTF(str);
换成这个试一下writer.write(str).getBytes("utf-8"));
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行