Java Can';找不到NullPointerException的源

Java Can';找不到NullPointerException的源,java,android,jackson,Java,Android,Jackson,所以我肯定我遗漏了一些非常明显的东西,但是有人能看到这个NullPointerException的来源吗?它出现在(ContactInfo联系人:contactArray) 相关代码如下: private class DownloadJSONData extends AsyncTask<String, Void, ContactInfo[]> { @Override protected ContactInfo[] doInBackground(String... j

所以我肯定我遗漏了一些非常明显的东西,但是有人能看到这个NullPointerException的来源吗?它出现在(ContactInfo联系人: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;
    }
私有类下载JSONDATA扩展异步任务{
@凌驾
受保护的ContactInfo[]doInBackground(字符串…jsonURL){
映射器=新的ObjectMapper();
//设置JSON数据所在的URL
URL=null;
试一试{
url=新url(jsonURL[0]);
}捕获(格式错误的异常e1){
//TODO自动生成的捕捉块
e1.printStackTrace();
}
//将JSON数据绑定到ConactInfo数组
试一试{
contactArray=mapper.readValue(url,ContactInfo[].class);
}捕获(JSONParsee异常){
e、 printStackTrace();
}捕获(JsonMappingException e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
用于(ContactInfo联系人:contactArray){
//从每个ContactInfo对象获取URL
字符串imageSource=contact.getSmallImageURL();
//将位图下载到bitmapArray中
试一试{
添加(下载位图(imageSource));
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
返回null;
}

您看到的任何未实例化的变量都被实例化为全局变量,以便在其他方法中使用。我唯一能想到的是,映射器方法没有将任何内容映射到contactArray(ContactInfo[]对象)。

看起来映射器失败了

如果此代码失败:

contactArray = mapper.readValue(url, ContactInfo[].class);
它打印了一个stacktrace,但一直在运行。 在实际循环之前,
contactArray
未进行任何检查。
contactArray
很可能为空


检查日志猫中的
JsonParseException
JsonMappingException
IOException
,最后的注释就是答案。现在,找出它没有映射的原因。好吧,我刚刚在catch语句中添加了显式日志信息,我得到了一个JsonMappingException,我是Json新手,有关于它的任何信息吗具体的异常是/如何修复它?好的,明白了,我想我一定是在ContactInfo类中键入了一个错误的变量,因为我现在在添加了一些我认为可能会停止MappingException的东西后使它工作。