Я пытаюсь запустить свое первое приложение-флаттер, и я получаю ошибку красного экрана при запуске его на моем 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(
...