Найдено исключение метода при использовании средства выбора изображений в flutter

#firebase #flutter #flutter-dependencies

#firebase #flutter #flutter-зависимости

Вопрос:

Я получаю сообщение об ошибке в плагине средства выбора изображений. Перепробовал все ресурсы из stack overflow и действительно застрял в этом за последние два дня.

Когда я пытаюсь загрузить какой-либо файл, консоль выдает ошибки, и ничего не происходит, пробовали редактировать эти файлы gradle, а также те, которые пытались очистить flutter, после чего несколько раз перезапускали приложение. Но ничего не происходит

Журнал ошибок:

 [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: MissingPluginException(No implementation found for method pickImage on channel plugins.flutter.io/image_picker)
E/flutter ( 9799): #0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:157:7)
E/flutter ( 9799): <asynchronous suspension>
E/flutter ( 9799): #1      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:332:12)
E/flutter ( 9799): #2      MethodChannelImagePicker.pickImagePath (package:image_picker_platform_interface/src/method_channel/method_channel_image_picker.dart:62:21)
  

Мой код:

 import 'package:image_picker/image_picker.dart';
import 'package:flutter/material.dart';
import 'dart:io';

class Upload extends StatefulWidget {
  @override
  _UploadState createState() => _UploadState();
}

class _UploadState extends State<Upload> {
  File _image;
  final picker = ImagePicker();

  Future getImage() async {
    final pickedFile = await picker.getImage(source: ImageSource.camera);

    setState(() {
      if (pickedFile != null) {
        _image = File(pickedFile.path);
      } else {
        print('No image selected.');
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: _image == null ? Text('No image selected.') : Image.file(_image),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: getImage,
        tooltip: 'Pick Image',
        child: Icon(Icons.add_a_photo),
      ),
    );
  }
}
  

другие предупреждения:

 Note: C:UsersuserAppDataLocalPubCachehostedpub.dartlang.orgfirebase_core_web-0.1.1 2androidsrcmainjavaioflutterpluginsfirebase_core_webFirebaseCoreWebPlugin.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: C:UsersuserAppDataLocalPubCachehostedpub.dartlang.orgfirebase_core-0.4.5androidsrcmainjavaioflutterpluginsfirebasecoreFirebaseCorePlugin.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: C:UsersuserAppDataLocalPubCachehostedpub.dartlang.orgfirebase_auth-0.14.0 9androidsrcmainjavaioflutterpluginsfirebaseauthFirebaseAuthPlugin.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
C:UsersuserAppDataLocalPubCachehostedpub.dartlang.orgfirebase_storage-3.1.6androidsrcmainjavaioflutterpluginsfirebasestorageFirebaseStoragePlugin.java:31: warning: [deprecation] PluginRegistry in io.flutter.plugin.common has been deprecated
  

Ответ №1:

просто остановите приложение, и повторный запуск будет работать отлично

Ответ №2:

Может возникнуть проблема с версией средства выбора изображений. Используйте более старую версию и проверьте.

Комментарии:

1. Я использовал все упомянутые методы для решения этой проблемы, но ничего не произошло

Ответ №3:

используйте последнюю версию Image_Picker

pickVideo и pickImage устарели, вместо этого используйте getVideo и getImage

и getVideo и getImage не являются статическими методами, поэтому создайте экземпляр ImagePicker, а затем попробуйте его вызвать

используйте этот код

 ImagePicker picker  = ImagePicker();
final pickedFile = await picker.pickVideo(source: ImageSource.gallery,);

if (pickedFile.path != null) {
 File pickedVideo = File(pickedFile.path);
}
  

Комментарии:

1. У меня это не сработало. Можете ли вы проверить это на своем устройстве один раз, а затем отправить решение?

2. Ошибка: произошло исключение. Исключение MissingPluginException (Исключение MissingPluginException(Реализация метода pickImage для плагинов канала не найдена. flutter.io/image_picker ))

3. я проверил на своем устройстве его работу, просто используйте последнюю версию imagepicker и проверьте

Ответ №4:

В новой версии вам необходимо создать экземпляр средства выбора изображений. Кроме того, метод больше не «pickImage», а «getImage». То же самое с «pickVideo» теперь изменено на «getVideo». И последнее, но не менее важное: вам нужно использовать «PickedFile», чтобы получить к нему доступ, и вы должны прочитать файл асинхронным методом «readAsBytes». Итак, в новой версии довольно много изменений. Это пример того, как может выглядеть код.

 ImagePicker _picker = new ImagePicker();
PickedFile file = await _picker.getVideo(source: ImageSource.camera);
Uint8List bytes = await file.readAsBytes();
String barcode = await scanner.scanBytes(bytes);