#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);