Android SocketServer崩溃应用程序
我一直在尝试让SocketServer在我的手机上工作。我最近升级到了ICS,所以现在我需要在一个单独的线程中完成我的网络工作,我不习惯这样做。我已经写了一些代码,但一旦我尝试连接到套接字,应用程序就会崩溃 我在切换开关时启动serverSocket:Android SocketServer崩溃应用程序,android,sockets,Android,Sockets,我一直在尝试让SocketServer在我的手机上工作。我最近升级到了ICS,所以现在我需要在一个单独的线程中完成我的网络工作,我不习惯这样做。我已经写了一些代码,但一旦我尝试连接到套接字,应用程序就会崩溃 我在切换开关时启动serverSocket: final Switch connectionSwitch = (Switch) findViewById(R.id.connectionSwitch); connectionSwitch.setOnCheckedChangeListener(n
final Switch connectionSwitch = (Switch) findViewById(R.id.connectionSwitch);
connectionSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) {
new Thread(){
public void run() {
try {
serverSocket = new ServerSocket(port);
socket = serverSocket.accept();
outToServer = new DataOutputStream(socket.getOutputStream());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
while(connectionSwitch.isChecked()) {
myPacket[0] = (byte) 0xAA;
myPacket[1] = (byte) 0x01;
myPacket[2] = (byte) (fanFrontSpeed/256);
myPacket[3] = (byte) (fanFrontSpeed%256);
myPacket[4] = (byte) (fanLeftSpeed/256);
myPacket[5] = (byte) (fanLeftSpeed%256);
myPacket[6] = (byte) (fanRightSpeed/256);
myPacket[7] = (byte) (fanRightSpeed%256);
try {
outToServer.write(myPacket,0,8);
} catch (IOException e) {
e.printStackTrace();
}
}
try {
socket.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}.start();
}
}
});
我得到的错误是:
FATAL EXCEPTION: Thread-4487
java.lang.NullPointerException
调试类似内容的最简单方法是在调试器上一步一步地进行,并在执行每一行之前检查是否有任何内容为null e、 g.可能发生的情况: 在服务器初始化过程中,发生了一些错误,它被捕捉到UnknownHostException或IOException,现在您的代码携带一个outToServer==null,因为它从未初始化过,当它尝试
outToServer.write(myPacket,0,8)时代码>您有一个空指针异常
但是可能有十亿种不同的东西,这是我能想到的最明显的。你能通过logcat获得更具体的错误文本吗?否则我们只能猜测什么可能是空的..我已经对它进行了更多的处理,并且已经解决了outToServer.write(myPacket,0,8)的问题。要么我没有正确地使用它(我以前一直在使用writeInt,它正在工作),要么我构造数据包的方式是错误的。