如何解决java.lang.NullPointerException:尝试在Android 10上调用虚拟方法'java.lang.String java.io.File.getName'
我正在从用户那里获取图像以进行上传。 我使用的方法在Android 9(Pie)之前都可以正常工作。 但是我在Android 10上进行了测试,它为我提供了Null Pointer。 我正在获取文件名,我认为它与新的权限策略有关,但是我无法解析。
这是完整的错误:
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null,request=65536,result=-1,data=Intent
{dat=content://com.google.android.apps.photos.contentprovider/-1/1/content://media/external/images/media/
253155/ORIGINAL/NONE/image/jpeg/1274443360 flg=0x1 clip={text/uri-list
U:content://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages
%2Fmedia%2F253155/ORIGINAL/NONE/image%2Fjpeg/1274443360} }}
to activity {com.buraqsysstudio.welist/com.buraqsysstudio.welist.Activities.MainActivity}:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String
java.io.File.getName()' on a null object reference
这是我打开选择器意图的方式:
Permissions.check(getActivity(),Manifest.permission.READ_EXTERNAL_STORAGE,null,new PermissionHandler() {
@Override
public void onGranted() {
Intent getIntent = new Intent(Intent.ACTION_GET_CONTENT);
getIntent.setType("image/*");
Intent pickIntent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
pickIntent.setDataAndType(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*");
Intent chooserIntent = Intent.createChooser(getIntent,"Select Image");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS,new Intent[]{pickIntent});
PICK_IMAGE = 1;
startActivityForResult(chooserIntent,PICK_IMAGE);
}
});
这是发送图片的代码:
Uri fullPhotoUri = data.getData();
user_profile_image.setImageURI(fullPhotoUri);
file = new File(FileUtils.getPath(fullPhotoUri,getActivity()));
Log.d("filedata","=>" + file);
File finalAvatar = ViewUtils.saveBitmapToFile(file);
userAvatar = MultipartBody.Part.createFormData
("avatar",finalAvatar.getName(),RequestBody.create(MediaType.parse("image/*"),finalAvatar));
有人帮助我解决这个问题吗?谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。