сначала, я использую Xamarin, но проблема такая же на родном Java-проекте. Я обновлял SDK до 5.1 и сталкивался с странной ошибкой в коде, который раньше работал нормально.Android Image Crop Uri Exception
imageStream = "file://" + imageStream;
Mvx.Trace("path: " + imageStream);
img = imageStream;
try {
Intent cropIntent = new Intent("com.android.camera.action.CROP");
// indicate image type and Uri
var fileUri = Android.Net.Uri.Parse(imageStream);
cropIntent.SetDataAndType(fileUri, "image/*");
// set crop properties
cropIntent.PutExtra("crop", "true");
// indicate aspect of desired crop
cropIntent.PutExtra("aspectX", 5);
cropIntent.PutExtra("aspectY", 4);
// indicate output X and Y
cropIntent.PutExtra("outputX", 1000);
cropIntent.PutExtra("outputY", 800);
// retrieve data on return
cropIntent.PutExtra("return-data", true);
// start the activity - we handle returning in onActivityResult
StartActivityForResult(cropIntent, PIC_CROP);
}
imageStream ist путь к файлу. Сам кадр изображения загружается отлично и работает. Однако, когда я ударил сохранить я получаю следующее исключение в LogCat:
E/AndroidRuntime(5333): FATAL EXCEPTION: BackgroundTask #1
E/AndroidRuntime(5333): Process: com.google.android.apps.photos, PID: 5333
E/AndroidRuntime(5333): java.lang.IllegalArgumentException: mediaStoreUri must be a MediaStore Uri
я не нашел подобный метод к Android.Net.Uri.Parse в пространствах имен Mediastore или MediaStore.Image. Означает ли это, что я должен сначала сохранить изображение в MediaStore, а затем извлечь его, прежде чем называть намерение? Или есть очевидное решение, которое я просто пропустил?
Приветствия Том
У меня было то же исключение на Android 6. MediaStore.Images.Media.InsertImage исправляет урожай для меня! Спасибо за ваше сообщение! Хотя это странно ... Кажется, это ошибка в М. –