我正在研究android app,我在其中解析来自webservice的数据,然后将其存储在数据库中。在这里,我还想将图像存储在数据库中,然后在下一个活动中返回。
我正在使用此代码将图像插入数据库。
Bitmap yourSelectedImage;
ByteArrayOutputStream stream;
byte[] byteArray;
这是for for循环
{
yourSelectedImage = BitmapFactory.decodeFile(SingleImageURL[i]);
stream = new ByteArrayOutputStream();
yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 100,
stream);
byteArray = stream.toByteArray();
database.insertDetail(ID[i],byteArray[i]);
}
此处SingleImageURL具有来自Web服务的图像URL。
当我运行代码时,它会在此行中给出错误nullPointerException
yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 100,
stream);
请告诉我我哪里出错了。以及如何做到这一点。
答案 0 :(得分:3)
使用this link加载您的位图yourSelectedImage
。然后通过将其转换为byte[]
您正在解码文件,实际上是一个URL。所以yourSelectedImage
是null
。当你尝试使用
yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 100, stream);
你得到NullPointerException