1

我有一个创建套接字然后从服务器接收图像的客户端代码。客户端然后使用线程来制作应用程序的图像视图和位图。但是,每次我尝试运行应用程序时,我都会在从套接字的输入流创建位图的行上得到一个空指针异常。这是线程的代码:class DataWorker extends 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());

任何关于为什么会发生这种情况的见解将不胜感激。

4

2 回答 2

2

您的套接字为空,或者它返回空输入流。检查两者是否为 null 以确定哪个。作为防御性编程,如果是这样,您可能不想调用该函数,但您可能应该返回创建套接字的代码并找出问题所在。

于 2013-07-08T14:19:26.310 回答
0

不能发表评论:我不知道,但只是猜测我会说套接字是空的...... Sarajog

于 2013-07-08T14:19:24.660 回答