Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Google drive中拾取图像时Android崩溃_Android_Android Intent_Android Gallery - Fatal编程技术网

从Google drive中拾取图像时Android崩溃

从Google drive中拾取图像时Android崩溃,android,android-intent,android-gallery,Android,Android Intent,Android Gallery,我选了一个画廊 final Intent galleryIntent = new Intent(); galleryIntent.setType("image/*"); galleryIntent.setAction(Intent.ACTION_GET_CONTENT); activity.startActivityForResult(galleryIntent, requestCode); 我从google drive中选择一张图片,然后返

我选了一个画廊

  final Intent galleryIntent = new Intent();
        galleryIntent.setType("image/*");
        galleryIntent.setAction(Intent.ACTION_GET_CONTENT);
        activity.startActivityForResult(galleryIntent, requestCode);
我从google drive中选择一张图片,然后返回onActivityResult

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == Activity.RESULT_OK) {
         if (requestCode == REQUEST_GALLERY_PICK) {
            try {
                setAvatar(ImageUtils.getPath(EditClientActivity.this, data.getData(), IMAGE));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    } else {
        avatarSizeOriginal = null;
    }
}
在这里,我从所选图像获取路径:

 public static String getPath(Context ctx, Uri uri, String fileType) {
        String mPath = null;
        Cursor mCursor;
        String[] mColumns = {MediaStore.Images.Media.DATA};

        if (uri == null) {
            return null;
        }

        // algorithm to be used for devices starting with KK
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            String mId = uri.getPathSegments().get(uri.getPathSegments().size() - 1);
            String mSelection = "";
            Uri mProvider = null;

            if (mId.contains(":")) {
                final String[] split = mId.split(":");
                mId = split[1];
            }

            if (fileType.equals(FileTypes.IMAGE)) {
                mSelection = MediaStore.Images.Media._ID + "=?";
                mProvider = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
            }
            if (fileType.equals(FileTypes.VIDEO)) {
                mSelection = MediaStore.Video.Media._ID + "=?";
                mProvider = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
            }
            if (fileType.equals(FileTypes.AUDIO)) {
                mSelection = MediaStore.Audio.Media._ID + "=?";
                mProvider = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
            }

            mCursor = ctx.getContentResolver().query(mProvider, mColumns, mSelection, new String[]{mId}, null, null);

        } else {
            mCursor = ctx.getContentResolver().query(uri, mColumns, null, null, null);
        }

        int column_index = mCursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

        if (mCursor != null && mCursor.moveToFirst()) {
            mPath = mCursor.getString(column_index);
            mCursor.close();
        }
        if (mPath==null) {
            mPath = uri.getPath();
        }
        return mPath;
    }
最后,当我尝试使用该图像时,我遇到了一个崩溃:

private void setAvatar(String path) throws IOException {

        avatarSizeOriginal = new File(path);
        initialAvatar = new File(path);}
表示路径
/document/acc=1;doc=231

如何处理这样的问题