2

私は、Webサービスからのデータを解析してデータベースに保存するAndroidアプリに取り組んでいます。ここでも、画像をデータベースに保存し、次のアクティビティで取得したいと考えています。

データベースに画像を挿入するためにこのコードを使用しています。

Bitmap yourSelectedImage;
ByteArrayOutputStream stream;
byte[] byteArray;

これは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);

どこが間違っているのか教えてください。そしてこれを行う方法。

4

1 に答える 1

3

このリンクyourSelectedImageを使用してビットマップをロードします。次に、変換してデータベースに保存しますbyte[]

実際には URL であるファイルをデコードしています。だからあなたyourSelectedImageはそうですnull。そして、使用して圧縮しようとすると

yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 100, stream);

あなたが得るNullPointerException

于 2013-03-05T13:04:38.633 に答える