ImagePicker.pickImage (источник: ImageSource.gallery) возвращает значение null

Шаги по воспроизведению Создайте приложение для флаттера. Попробуйте использовать самые основные функции плагина image_picker.

Ожидаемые результаты:

Когда вы выбираете изображение из галереи, оно должно что-то возвращать вашему приложению. Файл или местоположение. Ничего действительно.

Фактические результаты:

Ничего такого. Галерея запускается. Вы выбираете изображение. Галерея уходит, в приложение вообще ничего не возвращается. Просто оставляет ноль.

Мой код

Future getImage() async {
  var image = await ImagePicker.pickImage(source: ImageSource.gallery);
  customImageFile = image.toString();
  print('customImageFile: ' + customImageFile);
}

Вывод из кода

customImageFile: null

Версия плагина

image_picker: 0.6.5

Доктор трепетания

[√] Flutter (Channel stable, v1.12.13+hotfix.5, on Microsoft Windows [Version 10.0.17763.1098], locale en-AU)
• Flutter version 1.12.13+hotfix.5 at c:\flutter
• Framework revision 27321eb (4 months ago), 2019-12-10 18:15:01 -0800
• Engine revision 2994f7e1e6
• Dart version 2.7.0

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at C:\Installations\AndroidSDK
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-29, build-tools 29.0.2
• ANDROID_HOME = C:\Installations\AndroidSDK
• Java binary at: C:\Installations\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
• All Android licenses accepted.

[√] Android Studio (version 3.5)
• Android Studio at C:\Installations\Android Studio
• Flutter plugin version 40.2.2
• Dart plugin version 191.8593
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)

[√] Connected device (1 available)
• SM G970F • android-arm64 • Android 10 (API 29)

• No issues found!

person Bisclavret    schedule 12.04.2020    source источник
comment
print ('customImageFile:' + image.runtimeType.toString ()); приводит к Null.   -  person Bisclavret    schedule 12.04.2020


Ответы (3)


Future getImage() async {
  var image = await ImagePicker().getImage(source: ImageSource.gallery);
  customImageFile = File(image.path);
  print('customImageFile: ' + customImageFile);
}

Флаттер 2

person Isisco    schedule 15.04.2021

Вы должны типизировать переменную изображения как File:

var image = await ImagePicker().getImage(source: ImageSource.gallery) as File;
person Jeffmrz    schedule 17.04.2021

трепетать

вам нужно создать будущую функцию. сохранить результат в переменной File bcz, он вернет путь к изображению

Future<File> pickImage(ImageSource source) async{
    File testImage = await ImagePicker.pickImage(source: source);
    setState(() {
      pickedImage = testImage;
    });
  }
person Nitin0310    schedule 12.04.2020
comment
Спасибо Nitin0310. Я отредактирую свой код, так как он у меня есть в будущем, я просто не вставлял этот раздел. Сообщите мне, если после редактирования вам все еще кажется, что это неправильно. - person Bisclavret; 12.04.2020
comment
Я проверил это, используя ваш точный код, и вызвал с помощью pickImage (ImageSource.gallery); Это по-прежнему приводит к нулевому результату. PickImage возвращает null после выбора изображения из галереи. - person Bisclavret; 12.04.2020