Я реализовал съемку и обрезал ее в своем приложении. Обычно он работает отлично. Но проблема возникает на устройствах с галереей Cooliris. После того, как изображение будет снято, появляется сообщение «Галерея (процесс com.cooliris.media) неожиданно остановилось». К сожалению, у меня нет такого устройства, и я не могу его проверить. Но у меня есть стек из журнала сбоев.Возьмите и обрезайте изображение с помощью Cooliris
E/AndroidRuntime(20624): Caused by: java.lang.NullPointerException
E/AndroidRuntime(20624): at com.cooliris.media.CropImage.loadBitmap(CropImage.java:460)
E/AndroidRuntime(20624): at com.cooliris.media.CropImage.onCreate(CropImage.java:443)
E/AndroidRuntime(20624): at android.app.Activity.performCreate(Activity.java:4465)
E/AndroidRuntime(20624): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052)
E/AndroidRuntime(20624): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1932)
E/AndroidRuntime(20624): ... 11 more
код я использую, чтобы сделать фото:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
imageCaptureUri = Uri.fromFile(getTempImageFile());
intent.putExtra("return-data", true);
startActivityForResult(intent, INTENT_PICK_FROM_CAMERA);
Код для обрезки изображения (в onActivityResult для этого намерения):
Intent intent = new Intent("com.android.camera.action.CROP");
intent.addCategory("android.intent.category.DEFAULT");
intent.addCategory("android.intent.category.ALTERNATIVE");
intent.addCategory("android.intent.category.SELECTED_ALTERNATIVE");
intent.setDataAndType(data.getData(), "image/jpeg");
intent.putExtra("outputX", CROPPED_IMAGE_X);
intent.putExtra("outputY", CROPPED_IMAGE_Y);
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("scale", true);
intent.putExtra("return-data", true);
startActivityForResult(intent, INTENT_CROP_FROM_CAMERA);
Похоже data.getData () является нулевым, но я не уверен. Кто-нибудь знает, что может быть проблемой и как ее исправить?