【问题标题】:byte[] when parsing Base64 string to image NULL将 Base64 字符串解析为图像 NULL 时的字节 []
【发布时间】:2017-01-10 05:12:40
【问题描述】:

我从 Web 服务调用中得到一个 base64 字符串。然后,我尝试获取该字符串并将其放入列表视图中的图像视图中。我在 byte[] 行上得到一个空点异常。我不确定我做错了什么,或者为什么我在调试时得到空值我能够获取数组并逐步完成。

String peepPicData = peepWithPic.getThumbnailData();
                byte[] imageAsBytes = Base64.decode(peepPicData.getBytes(), Base64.DEFAULT); //the null is here
                Bitmap parsedImage = BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length);
                holder.mPeepPic.setImageBitmap(parsedImage);

我不确定为什么它在转换为数组并逐步执行时为空。我已经在浏览器的转换器中尝试过这个 Base64 字符串,它可以工作。

我正在使用 peepWithPic.getThumbnailData(); 获取 Base64 字符串;但随后在 bytep[] 中得到 null。

如果我将那个 base64 字符串插入 String peepPicData = "theactualBase64string" 我一遍又一遍地得到图片。为什么这不能仅从 getter 获取它,因为它已经在此调用之前设置?

【问题讨论】:

    标签: android nullpointerexception base64


    【解决方案1】:

    我不得不添加一个空检查,因为一些 peepWithPic 并没有实际的图片。这是更新的代码

    if (peepWithPic.getThumbnailData() != null) {
                    String peepPicData = peepWithPic.getThumbnailData();
                    byte[] imageAsBytes = Base64.decode(peepPicData.getBytes(), Base64.DEFAULT);
                    Bitmap parsedImage = BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length);
                    holder.mPeepPic.setImageBitmap(parsedImage);
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-18
      • 2018-09-07
      • 2014-07-21
      相关资源
      最近更新 更多