问题描述
我正在从用户那里获取图像以进行上传。 我使用的方法在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 (将#修改为@)