为什么这个位图会抛出空指针异常?

时间:2013-07-08 14:16:04

标签: android bitmap nullpointerexception client-server

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

对于为什么会发生这种情况的任何见解都将非常感激。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

无法发表评论: 我不知道,但只是猜测我会说socket是null ... Sarajog