Android 在棒棒糖中从图库中拾取图像

Android 在棒棒糖中从图库中拾取图像,android,Android,我从图库中挑选图像,我的代码与kitkat配合得很好,但它在棒棒糖中崩溃了 我的代码: public static int LOAD_IMAGE_RESULTS = 1; @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data);

我从图库中挑选图像,我的代码与kitkat配合得很好,但它在棒棒糖中崩溃了

我的代码:

    public static int LOAD_IMAGE_RESULTS = 1;
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == LOAD_IMAGE_RESULTS && data != null && data.getData() != null) {
            Uri _uri = data.getData();

            //User had pick an image.
            Cursor cursor = getActivity().getContentResolver().query(_uri, new String[] { android.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null);
            cursor.moveToFirst();

            //Link to the image
            final String imageFilePath = cursor.getString(0);
            Log.w("ImageFile",imageFilePath);
            cursor.close();
          }
}

我的代码正在崩溃,因为
imageFilePath
返回null。我如何解决它?

此代码块对我有效

Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(i, RESULT_LOAD_IMAGE);
其中RESULT_LOAD_IMAGE=1

然后是对onActivityResult方法的简单添加:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK
            && null != data) {
        final BitmapFactory.Options options = new BitmapFactory.Options();
        options.inSampleSize = 2;

        getSystemService(WINDOW_SERVICE);
        Uri selectedImage = data.getData();
        String[] filePathColumn = { MediaStore.Images.Media.DATA };

        Cursor cursor = getContentResolver().query(selectedImage,
                filePathColumn, null, null, null);
        cursor.moveToFirst();

        final int width = options.outWidth;
        final int height = options.outHeight;
        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        String picturePath = cursor.getString(columnIndex);
        cursor.close();
        final Bitmap scaledBitmap = Bitmap.createScaledBitmap(
                BitmapFactory.decodeFile(picturePath, options), width,
                height, true);
        imageView.setImageBitmap(scaledBitmap);
    }
}

您的意思是“cursor.getString()”返回null?如果先检查imageFilePath是否为null,则代码不必崩溃。我的意思是cursor.getString总是返回null,_uri.getPath()说明了什么?它返回的是:/document/image:26您找到解决方案了吗。如果是,请在这里发布!!