为什么我的应用程序在启动照片 Intent 之后但在调用 onActivityResult() 之前崩溃?

Why does my app crash after launching photo intent, but before onActivityResult() is called?

我正在使用以下代码向用户请求图像:

        Intent pickIntent = new Intent();
        pickIntent.setType("image/* video/*");
        pickIntent.setAction(Intent.ACTION_GET_CONTENT);
        pickIntent.addCategory(Intent.CATEGORY_OPENABLE);

        // child intents to allow capture image and video
        Intent capturePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        Intent captureVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);

        // set max capture size
        capturePhotoIntent.putExtra(MediaStore.EXTRA_SIZE_LIMIT, 20971520L); //20*1024*1024=20MB
        captureVideoIntent.putExtra(MediaStore.EXTRA_SIZE_LIMIT, 20971520L); //20*1024*1024=20MB

        // present import chooser
        String chooserTitle = "Import Media From...";
        Intent chooserIntent = Intent.createChooser(pickIntent, chooserTitle);
        chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{capturePhotoIntent, captureVideoIntent});
        startActivityForResult(chooserIntent, MEDIA_CAPTURE);

这适用于我的 Nexus 5,但在我的 Galaxy S5 上崩溃。崩溃发生在我拍照后,点击 "Save," 但在调用 onActivityResult() 之前。我也尝试通过 capturePhotoIntent.putExtra(MediaStore.EXTRA_OUTPUT, mUri) 提供 URI,但发生了相同的行为。

我的代码没有堆栈跟踪,因为没有任何东西传回我的 activity; activity 刚刚崩溃。

我已经为此工作了好几天。任何建议表示赞赏。

我想通了。我的应用 运行 内存不足。我通过将 android:largeHeap="true" 添加到我的 AndroidManifest.xml 以及重新设计管理图片数据的代码来解决这个问题。