应用程序崩溃时,在Android中从Gallery中的Listview中加载图片
问题描述:
我从相机中直接从图库中加载listview中的图片。在模拟器上,来自画廊的图像非常完美。但在设备上,当我选择第一张照片时效果很好。但是,当我第二次选择相同的图片时,应用程序崩溃并且没有出现logcat。 这里是一个代码:应用程序崩溃时,在Android中从Gallery中的Listview中加载图片
if (requestCode == UploadFile && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
Bitmap image=(BitmapFactory.decodeFile(picturePath));
cursor.close();
addattachmentsToListView(image);
答
一般来说,如果它打破了没有日志,你可以尝试通过Eclipse调试器或类似调试它,可能是一种选择,以更好地了解发生了什么。
就我所见,你的代码似乎取决于这样一个事实,即至少有一个结果总是有正确的响应,而该结果的[0]列是有效的。
如果发生崩溃,则会有logcat,除非您专门捕获并忽略运行时异常。在这段代码中,您至少应该检查moveToFirst()的返回值,以确保游标在访问行数据之前指向有效的行。 – laalto