Приложение Flutter: изображение видно в режиме отладки, но не в режиме выпуска для iOS ⇐ IOS
-
Гость
Приложение Flutter: изображение видно в режиме отладки, но не в режиме выпуска для iOS
В моем приложении Flutter для устройств iOS возникла ошибка. Некоторые изображения загружаются в режиме отладки, но не загружаются в режиме выпуска.
`
import 'package:flutter/material.dart'; импортировать «пакет: get/get.dart»; импортировать «пакет: Smooth_page_indicator/smooth_page_indicator.dart»; импортировать «beforeLogin.dart»; импортировать «intro_screen/intro_screen_1.dart»; импортировать «intro_screen/intro_screen_2.dart»; импортировать «intro_screen/intro_screen_3.dart»; класс StartIntro расширяет StatefulWidget { const StartIntro({super.key}); @переопределить State createState() => _StartIntroState(); } класс _StartIntroState расширяет State { PageController _controller = PageController(); Bool onLastPage = ложь; недействительный навигацииToLogin () { Navigator.pushNamedAndRemoveUntil( контекст, BeforeLogin.idScreen, (маршрут) => false); } @переопределить Сборка виджета (контекст BuildContext) { Размер size = MediaQuery.of(context).size; вар heightDevice = size.height; вернуть эшафот( тело: Стек( дети: [ Вид страницы( контроллер: _controller, onPageChanged: (индекс) { setState(() { onLastPage = (индекс == 2); }); }, дети: [ Вступительная страница1(), ВводнаяСтраница2(), Вступительная страница3(), ], ), Контейнер( выравнивание: Выравнивание(0, 0,8), ребенок: Строка( mainAxisAlignment: MainAxisAlignment.spaceEvenly, дети: [ ElevatedButton( onPressed: навигацияToLogin, стиль: ElevatedButton.styleFrom( Цвет фона: Colors.green.shade500, ), ребенок: Текст( 'пропустить'.tr, стиль: TextStyle( цвет: Цвета.белый, FontWeight: FontWeight.bold, FontSize: heightDevice * 0,01716738, ), ), ), SmoothPageIndicator (контроллер: _controller, количество: 3), onLastPage ? ElevatedButton( onPressed: навигацияToLogin, стиль: ElevatedButton.styleFrom( Цвет фона: Colors.green.shade500, ), ребенок: Текст( 'sign_in'.tr, стиль: TextStyle( цвет: Цвета.белый, FontWeight: FontWeight.bold, FontSize: heightDevice * 0,01716738, ), ), ) : ElevatedButton( onPressed: () => { _controller.nextPage( продолжительность: Продолжительность (миллисекунды: 500), кривая: Curves.easeIn, ), }, стиль: ElevatedButton.styleFrom( Цвет фона: Colors.green.shade500, ), ребенок: Текст( 'следующий'.tr, стиль: TextStyle( цвет: Цвета.белый, FontWeight: FontWeight.bold, FontSize: heightDevice * 0,01716738, ), ), ), ], ), ), ], )); } } `
Вступительный экран 1:
// Первый вводный экран
import 'package:flutter/material.dart'; класс IntroPage1 расширяет StatelessWidget { @переопределить Сборка виджета (контекст BuildContext) { Размер size = MediaQuery.of(context).size; вар heightDevice = size.height; вар widthDevice = size.width; вернуть эшафот( тело: Контейнер( ширина: двойная бесконечность, украшение: BoxDecoration( цвет: Цвета.белый, ), ребенок: Центр( ребенок: Стек( дети: [ Позиционируется( внизу: высотаDevice*0.30042918, слева: 0, правильно: 0, ребенок: Столбец( дети: [ Изображение.актив( 'изображения/intro1.png', ширина: ширина устройства*0,85, ), Размерная коробка( высота: высота устройства*0,02, ), Заполнение( отступ: EdgeInsets.only(слева: widthDevice*0.11627907, справа: widthDevice*0.11627907,), ребенок: Гибкий( ребенок: Текст( «Мы забили НОЛЬ!» Нулевая комиссия, взимаемая с водителей авто-рикш, стиль: TextStyle( размер шрифта: высота устройства*0,025, FontWeight: FontWeight.bold, ), textAlign: TextAlign.center, ), ), ) ], )) ], ), ), ), ); } } Вступительный экран 2:
// Второй вводный экран
import 'package:flutter/material.dart'; класс IntroPage2 расширяет StatelessWidget { @переопределить Сборка виджета (контекст BuildContext) { Размер size = MediaQuery.of(context).size; вар heightDevice = size.height; вар widthDevice = size.width; вернуть эшафот( тело: Контейнер( ширина: двойная бесконечность, украшение: BoxDecoration( цвет: Цвета.белый, ), ребенок: Центр( ребенок: Стек( дети: [ Позиционируется( внизу: высотаDevice*0.30042918, слева: 0, правильно: 0, ребенок: Столбец( дети: [ Image.asset('images/intro2.png', ширина: widthDevice*0.85,), SizedBox(высота: heightDevice*0.02,), Заполнение( отступ: EdgeInsets.only(слева: widthDevice*0.11627907, справа: widthDevice*0.11627907,), ребенок: Гибкий( ребенок: Текст( «Поездите и получите награды!» Гарантированные монеты в качестве бонуса за каждую поездку», стиль: TextStyle( размер шрифта: высота устройства*0,025, FontWeight: FontWeight.bold, ), textAlign: TextAlign.center, ), ) ), ], ) ) ], ), ), ), ); } } Вступительный экран 3:
// Третий вводный экран
import 'package:flutter/material.dart'; класс IntroPage3 расширяет StatelessWidget { @переопределить Сборка виджета (контекст BuildContext) { Размер size = MediaQuery.of(context).size; вар heightDevice = size.height; вар widthDevice = size.width; вернуть эшафот( тело: Контейнер( ширина: двойная бесконечность, украшение: BoxDecoration( цвет: Цвета.белый, ), ребенок: Центр( ребенок: Стек( дети: [ Позиционируется( внизу: высотаDevice*0.30042918, слева: 0, правильно: 0, ребенок: Столбец( дети: [ Image.asset('images/intro3.png', ширина: widthDevice*0.85,), SizedBox(высота: heightDevice*0.02,), Заполнение( отступ: EdgeInsets.only(слева: widthDevice*0.11627907, справа: widthDevice*0.11627907,), ребенок: Гибкий( ребенок: Текст( «Вкладка «Сообщество» для обновлений в реальном времени. 100% прозрачность!», стиль: TextStyle( размер шрифта: высота устройства*0,025, FontWeight: FontWeight.bold, ), textAlign: TextAlign.center, ), ) ), ], ) ) ], ), ), ), ); } } Также я получаю сообщение об ошибке при переходе на эти страницы: ════════ Исключение, обнаруженное библиотекой виджетов ═════ Неправильное использование ParentDataWidget. ═════════════════════════════════════════ ═════════ ══════════════════════════════
Изображения должны загружаться в режиме выпуска, как и на устройстве Android.
В моем приложении Flutter для устройств iOS возникла ошибка. Некоторые изображения загружаются в режиме отладки, но не загружаются в режиме выпуска.
`
import 'package:flutter/material.dart'; импортировать «пакет: get/get.dart»; импортировать «пакет: Smooth_page_indicator/smooth_page_indicator.dart»; импортировать «beforeLogin.dart»; импортировать «intro_screen/intro_screen_1.dart»; импортировать «intro_screen/intro_screen_2.dart»; импортировать «intro_screen/intro_screen_3.dart»; класс StartIntro расширяет StatefulWidget { const StartIntro({super.key}); @переопределить State createState() => _StartIntroState(); } класс _StartIntroState расширяет State { PageController _controller = PageController(); Bool onLastPage = ложь; недействительный навигацииToLogin () { Navigator.pushNamedAndRemoveUntil( контекст, BeforeLogin.idScreen, (маршрут) => false); } @переопределить Сборка виджета (контекст BuildContext) { Размер size = MediaQuery.of(context).size; вар heightDevice = size.height; вернуть эшафот( тело: Стек( дети: [ Вид страницы( контроллер: _controller, onPageChanged: (индекс) { setState(() { onLastPage = (индекс == 2); }); }, дети: [ Вступительная страница1(), ВводнаяСтраница2(), Вступительная страница3(), ], ), Контейнер( выравнивание: Выравнивание(0, 0,8), ребенок: Строка( mainAxisAlignment: MainAxisAlignment.spaceEvenly, дети: [ ElevatedButton( onPressed: навигацияToLogin, стиль: ElevatedButton.styleFrom( Цвет фона: Colors.green.shade500, ), ребенок: Текст( 'пропустить'.tr, стиль: TextStyle( цвет: Цвета.белый, FontWeight: FontWeight.bold, FontSize: heightDevice * 0,01716738, ), ), ), SmoothPageIndicator (контроллер: _controller, количество: 3), onLastPage ? ElevatedButton( onPressed: навигацияToLogin, стиль: ElevatedButton.styleFrom( Цвет фона: Colors.green.shade500, ), ребенок: Текст( 'sign_in'.tr, стиль: TextStyle( цвет: Цвета.белый, FontWeight: FontWeight.bold, FontSize: heightDevice * 0,01716738, ), ), ) : ElevatedButton( onPressed: () => { _controller.nextPage( продолжительность: Продолжительность (миллисекунды: 500), кривая: Curves.easeIn, ), }, стиль: ElevatedButton.styleFrom( Цвет фона: Colors.green.shade500, ), ребенок: Текст( 'следующий'.tr, стиль: TextStyle( цвет: Цвета.белый, FontWeight: FontWeight.bold, FontSize: heightDevice * 0,01716738, ), ), ), ], ), ), ], )); } } `
Вступительный экран 1:
// Первый вводный экран
import 'package:flutter/material.dart'; класс IntroPage1 расширяет StatelessWidget { @переопределить Сборка виджета (контекст BuildContext) { Размер size = MediaQuery.of(context).size; вар heightDevice = size.height; вар widthDevice = size.width; вернуть эшафот( тело: Контейнер( ширина: двойная бесконечность, украшение: BoxDecoration( цвет: Цвета.белый, ), ребенок: Центр( ребенок: Стек( дети: [ Позиционируется( внизу: высотаDevice*0.30042918, слева: 0, правильно: 0, ребенок: Столбец( дети: [ Изображение.актив( 'изображения/intro1.png', ширина: ширина устройства*0,85, ), Размерная коробка( высота: высота устройства*0,02, ), Заполнение( отступ: EdgeInsets.only(слева: widthDevice*0.11627907, справа: widthDevice*0.11627907,), ребенок: Гибкий( ребенок: Текст( «Мы забили НОЛЬ!» Нулевая комиссия, взимаемая с водителей авто-рикш, стиль: TextStyle( размер шрифта: высота устройства*0,025, FontWeight: FontWeight.bold, ), textAlign: TextAlign.center, ), ), ) ], )) ], ), ), ), ); } } Вступительный экран 2:
// Второй вводный экран
import 'package:flutter/material.dart'; класс IntroPage2 расширяет StatelessWidget { @переопределить Сборка виджета (контекст BuildContext) { Размер size = MediaQuery.of(context).size; вар heightDevice = size.height; вар widthDevice = size.width; вернуть эшафот( тело: Контейнер( ширина: двойная бесконечность, украшение: BoxDecoration( цвет: Цвета.белый, ), ребенок: Центр( ребенок: Стек( дети: [ Позиционируется( внизу: высотаDevice*0.30042918, слева: 0, правильно: 0, ребенок: Столбец( дети: [ Image.asset('images/intro2.png', ширина: widthDevice*0.85,), SizedBox(высота: heightDevice*0.02,), Заполнение( отступ: EdgeInsets.only(слева: widthDevice*0.11627907, справа: widthDevice*0.11627907,), ребенок: Гибкий( ребенок: Текст( «Поездите и получите награды!» Гарантированные монеты в качестве бонуса за каждую поездку», стиль: TextStyle( размер шрифта: высота устройства*0,025, FontWeight: FontWeight.bold, ), textAlign: TextAlign.center, ), ) ), ], ) ) ], ), ), ), ); } } Вступительный экран 3:
// Третий вводный экран
import 'package:flutter/material.dart'; класс IntroPage3 расширяет StatelessWidget { @переопределить Сборка виджета (контекст BuildContext) { Размер size = MediaQuery.of(context).size; вар heightDevice = size.height; вар widthDevice = size.width; вернуть эшафот( тело: Контейнер( ширина: двойная бесконечность, украшение: BoxDecoration( цвет: Цвета.белый, ), ребенок: Центр( ребенок: Стек( дети: [ Позиционируется( внизу: высотаDevice*0.30042918, слева: 0, правильно: 0, ребенок: Столбец( дети: [ Image.asset('images/intro3.png', ширина: widthDevice*0.85,), SizedBox(высота: heightDevice*0.02,), Заполнение( отступ: EdgeInsets.only(слева: widthDevice*0.11627907, справа: widthDevice*0.11627907,), ребенок: Гибкий( ребенок: Текст( «Вкладка «Сообщество» для обновлений в реальном времени. 100% прозрачность!», стиль: TextStyle( размер шрифта: высота устройства*0,025, FontWeight: FontWeight.bold, ), textAlign: TextAlign.center, ), ) ), ], ) ) ], ), ), ), ); } } Также я получаю сообщение об ошибке при переходе на эти страницы: ════════ Исключение, обнаруженное библиотекой виджетов ═════ Неправильное использование ParentDataWidget. ═════════════════════════════════════════ ═════════ ══════════════════════════════
Изображения должны загружаться в режиме выпуска, как и на устройстве Android.
Мобильная версия