Приложение Flutter, работающее в Интернете, не работает с ошибкой: только члены взаимодействия JS могут быть `` внешними ''
Я пытаюсь запустить мое текущее приложение Flutter в Интернете. я звонил
flutter create .
но если я попытаюсь запустить его в Chrome, мне будет предложено около 10000 сообщений об ошибках, которые выглядят следующим образом:
Попробуйте удалить ключевое слово external или добавить аннотацию взаимодействия JS. внешние удаления ffi.Pointer<OBX_id_array>;^
../../flutter/.pub-cache/hosted/pub.dartlang.org/objectbox-1.1.0/lib/src/native/bindings/objectbox-c.dart:6289:41: Ошибка: только JS-взаимодействие члены могут быть «внешними». Попробуйте удалить ключевое слово external или добавить аннотацию взаимодействия JS. внешний список ffi.Pointer<OBX_sync_change>;^
../../flutter/.pub-cache/hosted/pub.dartlang.org/objectbox-1.1.0/lib/src/native/bindings/objectbox-c.dart:6292:16: Ошибка: только JS-взаимодействие члены могут быть «внешними». Попробуйте удалить ключевое слово external или добавить аннотацию взаимодействия JS. внешнее целое число; ^
Не удалось скомпилировать приложение.
Я пробовал погуглить, но ничего не нашел. Кто-нибудь знает, о чем это и как я могу это подобрать ??
2 ответа
Повторная публикация ответа по проблеме GitHub здесь:
Вы не можете создать свое приложение для Интернета с пакетами, которые не поддерживают Интернет, чего еще нет в ObjectBox (хотя есть проблема, которую вы можете отслеживать ).
Иногда вам может потребоваться зависимость в небольшой части кода, и это нормально, если она не работает для Интернета. В этом случае вы можете использовать «условный импорт», например:
import 'myapp/sources-that-use-objectbox.dart' if (dart.library.html) 'myapp/sources-that-dont-use-objectbox.dart';
В моем случае я случайно использовал библиотеку "ffi", которая не поддерживается в Интернете. Затем я удалил весь импорт этой библиотеки из моего кода, а также удалил библиотеку из pubsec.yaml. Теперь запускается нормально.