Выбор изображения из галереи или камеры во флаттере - PullRequest
1 голос
/ 26 апреля 2019

Я пытаюсь дать пользователям способ добавить фотографию из их галереи или камеры, но флаттер продолжает падать после нажатия кнопки.

Я реализовал зависимость средства выбора изображений, а также Dart: io, перешел на Android X, но все равно не повезло.Вот часть моего кода:

class _PreferencesState extends State<_Preferences>
    with TickerProviderStateMixin {

File _image;

getImage (bool isCamera) async {Файл изображения;

if (isCamera) {
  image = await ImagePicker.pickImage(source: ImageSource.camera);
} else {
  image = await ImagePicker.pickImage(source: ImageSource.gallery);
}

setState(() {
  _image = image;
});

}

Тогда звонил сюда:

   FlatButton(
                                  textColor: Theme.of(context).primaryColor,
                                  child: Text('Use Camera'),
                                  onPressed: () {
                                    getImage(true);
                                  },
  _image == null
                            ? Container()
                            : Image.file(
                                _image,
                                height: 300,
                                width: 300,
                              ),    

Каждый раз, когда я вызываю метод, я получаю эту ошибку:

Возникла исключительная ситуация.PlatformException (PlatformException (ошибка, попытка вызвать виртуальный метод 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData (android.content.pm.PackageManager, java.lang.String)' для пустой ссылки на объект,null))

Я думал, что изменил тип изображения с нуля, чтобы он не вызывался, но я не уверен, что еще здесь делать.

1 Ответ

1 голос
/ 27 апреля 2019

Сбой может быть из-за разрешения камеры.Плагин Image picker удалил условие разрешения камеры.Когда мы получаем доступ к камере, приложение запрашивает у нас разрешение, но это условие больше не поддерживается.Нам нужно спросить разрешение вручную с помощью плагина permission_handler.Прочитайте более подробную информацию об этом изменении здесь и посмотрите эту ссылку о том, как добавить разрешение времени выполнения с помощью permission_handler.Надеюсь, что это решит вашу проблему.

...