未找到 activity 来处理 Intent com.android.camera.action.CROP

No activity found to handle Intent com.android.camera.action.CROP

我正在尝试通过我的应用程序制作图片。我可以启动相机并拍照,但是当完成拍照时我的应用程序崩溃了。我可以在屏幕上看到我的画廊已停止,这是我日志中的错误:

我试图找到一些东西,但什么也没找到。

FATAL EXCEPTION: main
                                                   android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.android.camera.action.CROP dat=file:///data/data/com.android.gallery3d/files/crop-temp (has extras) }
                                                       at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1628)
                                                       at android.app.Instrumentation.execStartActivity(Instrumentation.java:1423)
                                                       at android.app.Activity.startActivityForResult(Activity.java:3388)
                                                       at android.app.Activity.startActivityForResult(Activity.java:3349)
                                                       at com.android.camera.actor.PhotoActor.doAttach(PhotoActor.java:1125)
                                                       at com.android.camera.actor.PhotoActor.access0(PhotoActor.java:62)
                                                       at com.android.camera.actor.PhotoActor.onClick(PhotoActor.java:210)
                                                       at android.view.View.performClick(View.java:4209)
                                                       at android.view.View$PerformClick.run(View.java:17431)
                                                       at android.os.Handler.handleCallback(Handler.java:725)
                                                       at android.os.Handler.dispatchMessage(Handler.java:92)
                                                       at android.os.Looper.loop(Looper.java:153)
                                                       at android.app.ActivityThread.main(ActivityThread.java:5297)
                                                       at java.lang.reflect.Method.invokeNative(Native Method)
                                                       at java.lang.reflect.Method.invoke(Method.java:511)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
                                                       at dalvik.system.NativeStart.main(Native Method)

这是我的代码:

@Override
    public void onButton1Click(int ref) {
        try {
            currentRef = ref;
            Intent mIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

            Uri fileUri = FileProvider.getUriForFile(getActivity(), BuildConfig.APPLICATION_ID + ".provider", createImageFile());
            mIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name
            mIntent.putExtra("crop", "true");
            startActivityForResult(mIntent, REQUEST_TAKE_PHOTO);
        }catch (IOException ex) {
            ex.printStackTrace();
        }
    }


private File createImageFile() throws IOException {
        // Create an image file name
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        String imageFileName = "JPEG_" + timeStamp + "_";
        File storageDir = new File(Environment.getExternalStoragePublicDirectory(
                Environment.DIRECTORY_DCIM), "Camera");
        File image = File.createTempFile(
                imageFileName,  /* prefix */
                ".jpg",         /* suffix */
                storageDir      /* directory */
        );

        // Save a file: path for use with ACTION_VIEW intents
        mCurrentPhotoPath = "file:" + image.getAbsolutePath();
        return image;
    }

没有,Android没有有裁剪意图

许多开发人员正在对具有 com.android.camera.action.CROP 操作的 Intent 调用 startActivity()。他们这样做是为了裁剪图像。

这真是个糟糕的主意。

Source here - CommonsBlog