【发布时间】:2018-07-19 04:55:21
【问题描述】:
在我的应用中,用户可以选择从照片库中选择图像或使用相机拍照。但是,当用户选择要使用的照片时(当他们点击它时),应用程序崩溃并且日志中出现此错误 -
java.lang.RuntimeException: 传递结果失败 ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://com.google.android.apps.photos.contentprovider/- 1/1/content://media/external/images/media/46/ORIGINAL/NONE/859067274 flg=0x1 clip={text/uri-list U:content://com.google.android.apps.photos。 contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F46/ORIGINAL/NONE/859067274}}}活动{com.veterinarysedations.georgeberdovskiy.veterinarysedations/com.veterinarysedations.georgeberdovskiy.veterinarysedations。 DogDetailActivity}:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.widget.ImageView.setImageURI(android.net.Uri)”
这是我的代码 -
public void PickImage(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
final String[] weightUnitOptions = {"Camera", "Gallery"};
builder.setTitle("Pick Image from")
.setItems(weightUnitOptions, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
if (which == 0) {
Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePicture, 0);
} else {
Intent pickPhoto = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(pickPhoto , 1);
}
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
if (resultCode != RESULT_CANCELED) {
if (requestCode == 0) {
Uri selectedImage = imageReturnedIntent.getData();
imageView.setImageURI(selectedImage);
} else if (requestCode == 1) {
Uri selectedImage = imageReturnedIntent.getData();
imageView.setImageURI(selectedImage);
} else {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
}
}
}
这是我尝试使用的 StackOverflow 上的答案之一 -
有人知道我需要做什么来修复这个错误吗?提前致谢!
【问题讨论】:
-
实际问题是该日志行末尾的
NullPointerException。imageView在onActivityResult()中为空。 -
一定有异常。关注This 使用
MediaStore.EXTRA_OUTPUT获取完整尺寸图片。 -
你是否正确初始化了你的 imageView 对象?
标签: java android imageview onactivityresult