Android 错误,没有用于处理意向裁剪图像的活动

Android 错误,没有用于处理意向裁剪图像的活动,android,android-intent,Android,Android Intent,我有这样的代码来裁剪图像 crop.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { mImageCaptureUri = Uri.parse(path); doCrop(); 若单击按钮裁剪,它将运行此代码裁剪图像 protected v

我有这样的代码来裁剪图像

crop.setOnClickListener(new OnClickListener(){   

            @Override
            public void onClick(View arg0) {       

                mImageCaptureUri = Uri.parse(path);

                doCrop();
若单击按钮裁剪,它将运行此代码裁剪图像

protected void doCrop(){

           final ArrayList<CropOption> cropOptions = new ArrayList<CropOption>();

            Intent intent = new Intent("com.android.camera.action.CROP");
            intent.setType("image/*");

            List<ResolveInfo> list = getPackageManager().queryIntentActivities( intent, 0 );

            int size = list.size();

            if (size == 0) {
                Toast.makeText(this, "Can not find image crop app", Toast.LENGTH_SHORT).show();

                return;
            } else {
                intent.setData(mImageCaptureUri);
                intent.setType("image/*");
                intent.putExtra("outputX", 200);
                intent.putExtra("outputY", 200);
                intent.putExtra("aspectX", 1);
                intent.putExtra("aspectY", 1);
                intent.putExtra("scale", true);
                intent.putExtra("return-data", true);
                //intent.putExtra("output", mImageCaptureUri);

                if (size == 1) {
                    Intent i        = new Intent(intent);
                    ResolveInfo res = list.get(0);
                    i.setComponent( new ComponentName(res.activityInfo.packageName, res.activityInfo.name));
                    startActivityForResult(i, HASIL_CROP);
                } else {
                    for (ResolveInfo res : list) {
                        final CropOption co = new CropOption();

                        co.title    = getPackageManager().getApplicationLabel(res.activityInfo.applicationInfo);
                        co.icon     = getPackageManager().getApplicationIcon(res.activityInfo.applicationInfo);
                        co.appIntent= new Intent(intent);
                        co.appIntent.setComponent( new ComponentName(res.activityInfo.packageName, res.activityInfo.name));

                        cropOptions.add(co);
                    }

                    CropOptionAdapter adapter = new CropOptionAdapter(getApplicationContext(), cropOptions);

                    AlertDialog.Builder builder = new AlertDialog.Builder(this);
                    builder.setTitle("Choose Crop App");
                    builder.setAdapter( adapter, new DialogInterface.OnClickListener() {
                        public void onClick( DialogInterface dialog, int item ) {
                            startActivityForResult( cropOptions.get(item).appIntent, CROP_FROM_CAMERA);
                        }
                    });

                    builder.setOnCancelListener( new DialogInterface.OnCancelListener() {
                        @Override
                        public void onCancel( DialogInterface dialog ) {

                            if (mImageCaptureUri != null ) {
                                getContentResolver().delete(mImageCaptureUri, null, null );
                                mImageCaptureUri = null;
                            }
                        }
                    } );

                    AlertDialog alert = builder.create();

                   alert.show();
                }    
            }
但当我点击裁剪按钮时,什么也没发生,下面是Logcat 10-24 16:47:21.669:INFO/ActivityManager(59):开始活动:Intent{act=com.android.camera.action.CROP typ=image/*cmp=com.android.gallery/com.android.camera.CropImage(有附加功能)}

我想是因为

intent.setData(mImageCaptureUri);
                    intent.setType("image/*");
但如果我删除intent.setType(“image/*”),它会显示错误

10-24 16:51:24.549: ERROR/UriImage(345): got exception decoding bitmap 
10-24 16:51:24.549: ERROR/UriImage(345): java.lang.NullPointerException
10-24 16:51:24.549: ERROR/UriImage(345):     at com.android.camera.gallery.UriImage.getPFD(UriImage.java:67)
10-24 16:51:24.549: ERROR/UriImage(345):     at com.android.camera.gallery.UriImage.fullSizeBitmap(UriImage.java:93)
10-24 16:51:24.549: ERROR/UriImage(345):     at com.android.camera.gallery.UriImage.fullSizeBitmap(UriImage.java:86)
10-24 16:51:24.549: ERROR/UriImage(345):     at com.android.camera.gallery.UriImage.thumbBitmap(UriImage.java:120)
10-24 16:51:24.549: ERROR/UriImage(345):     at com.android.camera.CropImage.onCreate(CropImage.java:143)
10-24 16:51:24.549: ERROR/UriImage(345):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
任何人都可以帮忙吗


谢谢

@yalya检查mImageCaptureUri是否为空。如果不为空,则只需执行进一步的任务。我认为mImageCaptureUri是空的。

那么如果captureURI是空的,他应该怎么做呢?
10-24 16:51:24.549: ERROR/UriImage(345): got exception decoding bitmap 
10-24 16:51:24.549: ERROR/UriImage(345): java.lang.NullPointerException
10-24 16:51:24.549: ERROR/UriImage(345):     at com.android.camera.gallery.UriImage.getPFD(UriImage.java:67)
10-24 16:51:24.549: ERROR/UriImage(345):     at com.android.camera.gallery.UriImage.fullSizeBitmap(UriImage.java:93)
10-24 16:51:24.549: ERROR/UriImage(345):     at com.android.camera.gallery.UriImage.fullSizeBitmap(UriImage.java:86)
10-24 16:51:24.549: ERROR/UriImage(345):     at com.android.camera.gallery.UriImage.thumbBitmap(UriImage.java:120)
10-24 16:51:24.549: ERROR/UriImage(345):     at com.android.camera.CropImage.onCreate(CropImage.java:143)
10-24 16:51:24.549: ERROR/UriImage(345):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)