拍照后画廊崩溃(意图)

时间:2016-07-28 14:42:20

标签: android android-intent android-camera

拍摄照片并单击“提交”按钮后,Gallery应用程序崩溃。这怎么可能,我该如何解决?该库未在我的应用中明确使用。

我使用MediaStore.ACTION_IMAGE_CAPTURE意图来启动相机。 要将图片保存到文件系统,我使用了此处提供的代码:https://developer.android.com/training/camera/photobasics.html

顺便说一句,我使用的是带有Android 4.1(API 16)的摩托罗拉TC55

代码段:

 Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    // Ensure that there's a camera activity to handle the intent
    if (takePictureIntent.resolveActivity(getContext().getPackageManager())    != null) {

        // Create the File where the photo should go
        File photoFile;
        try {
            photoFile = createImageFile();
        } catch (IOException ex) {
            // Error occurred while creating the File
            return;
        }

        // Continue only if the File was successfully created
        if (photoFile != null) {
            Uri photoURI = FileProvider.getUriForFile(getContext(),
                    "com.example.android.fileprovider",
                    photoFile);
            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
            startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
        }
    }

 public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == Activity.RESULT_OK) {
        File imgFile = new File(imagePath);
        if(imgFile.exists()) {
            if (HttpManager.isNetworkAvailable(getContext())) {
// Send the picture to the webserver (start AsyncTask)
            } else {
// Save the call to process it later
            }
        }
    }
}

logcat中没有可用的日志,因为我的应用程序没有崩溃。 开始操作后在logcat中添加的唯一行是:

07-29 08:57:13.081 31473-31473/com.test.test W/IInputConnectionWrapper: showStatusIcon on inactive InputConnection

                                                                                    [ 07-29 08:57:13.081   180:  736 E/         ]
                                                                                    android::status_t android::QCameraStream_preview::getBufferFromSurface(): idx = 3, fd = 82, size = 462848, offset = 0

                                                                                    [ 07-29 08:57:13.091   180:  736 E/         ]
                                                                                    android::status_t android::QCameraStream_preview::getBufferFromSurface(): idx = 4, fd = 88, size = 462848, offset = 0

                                                                                    [ 07-29 08:57:13.091   180:  736 E/         ]
                                                                                    android::status_t android::QCameraStream_preview::getBufferFromSurface(): idx = 5, fd = 94, size = 462848, offset = 0

有时我会得到这个:

07-29 09:01:19.464 12604-12604/com.test.test W/IInputConnectionWrapper: showStatusIcon on inactive InputConnection

2 个答案:

答案 0 :(得分:0)

当前一页(或类)中的输入连接尚未关闭时,会出现此类问题。检查您是否已关闭上一课程中的输入连接(通过提供connection.close())。

当您离开活动并保持HTTP连接打开时,会出现此问题。

答案 1 :(得分:0)

我使用示例项目中的代码修复了它:android developer site

我认为问题在于Android 4.1与FileProvider不完全兼容。因此在将文件保存到文件中时(在Gallery应用程序中)出现故障。示例代码(尚未)使用它。