拍摄照片并单击“提交”按钮后,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
答案 0 :(得分:0)
当前一页(或类)中的输入连接尚未关闭时,会出现此类问题。检查您是否已关闭上一课程中的输入连接(通过提供connection.close())。
当您离开活动并保持HTTP连接打开时,会出现此问题。
答案 1 :(得分:0)
我使用示例项目中的代码修复了它:android developer site
我认为问题在于Android 4.1与FileProvider不完全兼容。因此在将文件保存到文件中时(在Gallery应用程序中)出现故障。示例代码(尚未)使用它。