Flutter - "Window_sendPlatformMessage" (4 аргумента) не может быть найден
Я разрабатываю приложение с Flutter, которое берет изображение и позволяет пользователю сохранить его в галерее.
Я использую плагин image_picker_saver, чтобы сохранить его.
Вначале я вызывал метод для сохранения изображения в главном потоке, но я понял, что это действительно медленно, и теперь я пытаюсь поместить его в новый изолированный поток, но я получаю одну и ту же ошибку все время, поэтому мой вопрос: как я могу вызвать метод для сохранения изображения в новой изолированной теме?
Мой код выглядит так:
Main.dart
class _AkkaMark extends State<CameraUpload>{
.
.
.
void _clickSaveImage() {
compute(saveImage, _imageFile).then((Future<String> futurePath) {
futurePath.then((String path){
_imageFile = new File(path);
});
});
}
.
.
.
}
toCompute.dart
Future<String> saveImage(File image) async {
return await ImagePickerSaver.saveFile(fileData: image.readAsBytesSync());
}
Я пытался изменить код, пытаясь найти ошибку, но всегда одинаково:
E/flutter (22602): [ERROR:flutter/runtime/dart_isolate.cc(717)] Isolate (413787440) 'main.dart:_spawn()' exited with an error
E/flutter (22602): [ERROR:flutter/shell/common/shell.cc(184)] Dart Error: Unhandled exception:
E/flutter (22602): error: native function 'Window_sendPlatformMessage' (4 arguments) cannot be found
E/flutter (22602): #0 Window.sendPlatformMessage (dart:ui/window.dart:811:9)
E/flutter (22602): #1 BinaryMessages._sendPlatformMessage (package:flutter/src/services/platform_messages.dart:40:15)
E/flutter (22602): #2 BinaryMessages.send (package:flutter/src/services/platform_messages.dart:88:12)
E/flutter (22602): #3 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:286:49)
E/flutter (22602): <asynchronous suspension>
E/flutter (22602): #4 ImagePickerSaver.saveFile (package:image_picker_saver/image_picker_saver.dart:77:38)
E/flutter (22602): <asynchronous suspension>
E/flutter (22602): #5 saveImage (package:AKKAmark/toCompute.dart:113:35)
E/flutter (22602): <asynchronous suspension>
E/flutter (22602): #6 _IsolateConfiguration.apply (package:flutter/src/foundation/isolates.dart:88:16)
E/flutter (22602): #7 _spawn.<anonymous closure> (package:flutter/src/foundation/isolates.dart:96:30)
E/flutter (22602): #8 Timeline.timeSync (dart:developer/timeline.dart:168:22)
E/flutter (22602): #9 _spawn (package:flutter/src/foundation/isolates.dart:93:12)
E/flutter (22602): #10 _startIsolate.<anonymous closure> (dart:isolate/runtime/libisolate_patch.dart:292:17)
E/flutter (22602): #11 _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)
У кого-то есть подсказка? заранее спасибо
редактировать
Я поставил вопрос на GitHub и в основном только плагины могут быть использованы в основном потоке пользовательского интерфейса.
"Window_sendPlatformMessage" (4 аргумента) не может быть найден
1 ответ
Я поставил вопрос на GitHub и в основном только плагины могут быть использованы в основном потоке пользовательского интерфейса.
"Window_sendPlatformMessage" (4 аргумента) не может быть найден
Вы можете попробовать использовать https://pub.dev/packages/flutter_isolate для создания изолята, который поддерживает плагины Flutter.