找不到NullPointerException的来源

时间:2014-03-07 17:44:04

标签: java android jackson

所以我确定我错过了一些非常明显的东西,但是有人能看到这个NullPointerException的来源吗?它出现在行for(ContactInfo contact: contactArray)

相关代码如下:

private class DownloadJSONData extends AsyncTask<String, Void, ContactInfo[]> {

    @Override
    protected ContactInfo[] doInBackground(String... jsonURL) {
        mapper = new ObjectMapper();

        //Set URL where JSON Data exists
        URL url = null;
        try {
            url = new URL(jsonURL[0]);
        } catch (MalformedURLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

        //Bind JSON data to ConactInfo Array
        try {
            contactArray = mapper.readValue(url, ContactInfo[].class);
        } catch (JsonParseException e) {
            e.printStackTrace();
        } catch (JsonMappingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        for(ContactInfo contact: contactArray) {
            //Get URL from each ContactInfo object
            String imageSource = contact.getSmallImageURL();

            //Download bitmaps into bitmapArray
            try {
                bitmapArray.add(downloadBitmap(imageSource));
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return null;
    }

您看到的未实例化的任何变量都会被实例化为全局变量,以便在其他方法中使用。我唯一能想到的是mapper方法不会将任何东西映射到contactArray(这是一个ContactInfo []对象。)

1 个答案:

答案 0 :(得分:1)

看起来映射器失败了。

如果此代码失败:

contactArray = mapper.readValue(url, ContactInfo[].class);

它会打印一个堆栈跟踪,但会继续运行。 在实际循环之前,contactArray上没有检查。 contactArray很可能是空的。

检查JsonParseExceptionJsonMappingExceptionIOException的logcat。