Что такое _CompactLinkedHashSet во флаттере? - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь запустить свое первое приложение-флаттер, и я получаю ошибку красного экрана при запуске его на моем iPhone, но он без проблем работает на симуляторе:

type '_CompactLinkedHashSet' is not подтип типа «Виджет».

Кто-нибудь знает, к чему относится эта ошибка? Вызывающий ошибки виджет - это FutureBuilder. Тип FutureBuilder такой же, как у Future.

Доктор флаттера:

[✓] Флаттер (Channel dev, v1.18.0, в Ma c OS X 10.15.4 19E287 , язык en-AU) • Flutter версии 1.18.0 в / Users / Josh / Developer / flutter • Версия фреймворка 8f7327f83a (11 дней a go), 2020-04-06 22:11:01 -0400 • Версия двигателя 49891e0653 • Dart версии 2.8.0 (сборка 2.8.0-dev.20.0 1210d27678) * Toolchain

[✓] Android - разработка для Android устройств (Android SDK версия 29.0.3) • Android SDK в / Users / Josh / Библиотека / Android / sdk • Платформа android -29, build-tools 29.0.3 • Java двоичный файл в: / Applications / Android Studio.app/Contents/jre/jdk/ Содержание / Home / bin / java • Java версия OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211) • Все лицензии Android приняты.

[✓] Xcode - разработка для iOS и macOS (Xcode 11.4.1) • Xcode в /Applications/Xcode.app/Contents/Developer • Xcode 11.4.1, сборка версии 11E503a • CocoaPods версия 1. 9.1

[✓] Android Studio (версия 3.6) • Android Studio at / Applications / Android Studio.app/Contents • Плагин Flutter версии 45.1.1 • Плагин Dart версии 192.7761 • Java версия среды выполнения OpenJDK (сборка 1.8.0_212-release-1586-b4-5784211)

[!] Подключенное устройство! Нет доступных устройств

! Врач обнаружил проблемы в 1 категории.

class DisclaimerData {
  bool agreed;
  String version;
  DisclaimerData({this.agreed, this.version});
}


class DisclaimerView extends StatefulWidget {
  @override
  _DisclaimerViewState createState() => _DisclaimerViewState();
}

class _DisclaimerViewState extends State<DisclaimerView> {

Future<DisclaimerData> _getAgreed() async {
    final preferences = await SharedPreferences.getInstance();
    final disclaimerValues = DisclaimerData();

      disclaimerValues.agreed = preferences.getBool('disclaimer_agreed') ?? false;
      disclaimerValues.version =
    preferences.getString('disclaimer_version') ?? '0';

    return disclaimerValues;
  }

@override     
Widget build(BuildContext context) {
   return FutureBuilder<DisclaimerData>(
      future: _getAgreed(),
      builder: (context, snapshot) {
        if (snapshot.hasData) {
          return Scaffold(
...
...