我有一个客户端代码,用于创建套接字,然后从服务器接收图像。然后,客户端使用线程来创建应用程序的图像视图和位图。但是,每次我尝试运行应用程序时,我都会在从套接字的输入流创建位图的行上获得空指针异常。这是线程的代码: class DataWorker扩展了Thread {
@Override
public void run() {
while(true){
try {
bmp = BitmapFactory.decodeStream(socket.getInputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
uiHandler.post(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
imageIn.setImageBitmap(bmp);
}
});
}
}
这是抛出异常的行。
bmp = BitmapFactory.decodeStream(socket.getInputStream());
对于为什么会发生这种情况的任何见解都将非常感激。
答案 0 :(得分:2)
您的套接字为null,或者返回空输入流。检查两者是否为null以确定哪个。作为防御性编程,如果是这样,您可能不想调用该函数,但是您应该回到创建套接字的代码并找出问题所在。
答案 1 :(得分:0)
无法发表评论: 我不知道,但只是猜测我会说socket是null ... Sarajog