Java &引用;否 ;内容 ;“供应商执行”;将uri转换为位图时出错
我正在尝试从Java &引用;否 ;内容 ;“供应商执行”;将uri转换为位图时出错,java,android,bitmap,android-emulator,Java,Android,Bitmap,Android Emulator,我正在尝试从Uri检索图像,首先我从gallery中选择了图像,然后使用intent传递了imagePath,并尝试使用此代码从Uri获取图像- Uri imgUri = Uri.parse(getIntent().getExtras().getString("imageUri")); Log.d("" + imgUri, " here it is"); InputStream PIS; try {
Uri
检索图像,首先我从gallery中选择了图像,然后使用intent传递了imagePath,并尝试使用此代码从Uri
获取图像-
Uri imgUri = Uri.parse(getIntent().getExtras().getString("imageUri"));
Log.d("" + imgUri, " here it is");
InputStream PIS;
try {
PIS = getContentResolver().openInputStream(imgUri);
mImage = BitmapFactory.decodeStream(PIS);
} catch (Exception e){
Log.d("go home you're drunk "+e,"");
Toast toast = Toast.makeText(this, ""+e, Toast.LENGTH_LONG);
toast.show();
}
但是我得到了这个错误
01-19 04:59:50.627 847-858/? I/ActivityManager: START u0 {cmp=pb.imagepicker/.CropActivity (has extras)} from uid 10060 on display 0
01-19 04:59:50.668 6072-6072/? D//storage/emulated/0/DCIM/Camera/IMG_20160118_124651.jpg: here it is
01-19 04:59:50.668 6072-6072/? D/go home you're drunk java.io.FileNotFoundException: No content provider: /storage/emulated/0�di[ 01-19 04:59:50.769 6072: 6085 W/EGL_emulation: eglSurfaceAttrib not implemented
//一些额外的错误
01-19 05:33:06.419 6565-6580/? W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xe8e32360, error=EGL_SUCCESS
01-19 05:33:06.564 6565-6580/? W/EGL_emulation: eglSurfaceAttrib not implemented
01-19 05:33:06.564 6565-6580/? W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xe8e328c0, error=EGL_SUCCESS
您可以看到我的imgUri
上有uri
,不知道我做错了什么或遗漏了什么如果有人知道我遗漏了什么,请更正我谢谢:)
我正在使用genyMotion emulator,这是问题的原因吗?将此权限附加到您的
AndroidManifest.xml
文件中
和使用
Uri imgUri=Uri.parse(“文件:/”+getIntent().getExtras().getString(“图像Uri”)代码>也遇到了同样的问题,可能是因为你的模拟器改变了我的模拟器,我从genymotion搬到了blueStack,它为我工作。我不知道为什么会这样,你应该试一试
你读过openInputStream
文档吗?@pskink没有,我刚从一个类似的场景中采用了它,所以这样做,你就会知道支持什么Uri模式了(是什么?errrr,什么是什么?参见Syntaxey brother首先感谢您的回复,我按照您的建议尝试了,但似乎没有获得相同的输出,我只需使用path变量添加“file://”。最好使用Uri mUri=Uri.fromFile(新文件(yourpath));谢谢,这是我已经尝试过的:是的,在genymotion的emulator上花了我3个多小时后,它对我起了作用
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE" />