【发布时间】:2013-08-30 12:57:28
【问题描述】:
我正在创建一个允许用户从手机图库中挑选图片的应用。对于 SD 卡上的图片,一切正常,但当用户从 Picassa 中选择图片时,应用程序崩溃。
调用图库的代码:
Intent i = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, SELECT_FROM_GALLERY_ACTION);
图片接收代码:
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 filePath = cursor.getString(columnIndex);
cursor.close();
File galeryFile = new File(filePath);
FileUtils.copyFile(galeryFile, imageFile);
processImage(imageFile);
错误:
08-30 14:51:04.268: E/ActivityThread(31379): Failed to find provider info for com.android.gallery3d.provider
08-30 14:51:04.278: E/AndroidRuntime(31379): FATAL EXCEPTION: main
08-30 14:51:04.278: E/AndroidRuntime(31379): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=4353, result=-1, data=Intent { dat=content://com.android.gallery3d.provider/picasa/item/5735585761449205042 flg=0x1 }} to activity {com.example.my_gallery_app/com.example.my_gallery_app.MainActivity}: java.lang.NullPointerException
空指针出现在行:
cursor.moveToFirst();
I read this workaround. 但是 cmets 并不乐观。我想限制画廊向用户显示 Facebook、Picassa 或其他图片,并让她只从 SD 卡中挑选图片。
【问题讨论】:
标签: android android-intent gallery