Вопрос или проблема
изображение здесь Я разрабатываю приложение на Flutter, и у меня возникли проблемы с тем, что пользовательская иконка заставки не отображается на Android. Несмотря на то, что я следовал обычному процессу генерации иконки и подтвердил, что файл изображения правильно размещён, по-прежнему отображается стандартная иконка Android.
Вот детали того, что я сделал:
-
Я использую
flutter_launcher_icons
для генерации иконок. -
Мой
pubspec.yaml
включает следующую конфигурацию:flutter_launcher_icons: android: "launcher_icon" ios: true image_path: "assets/images/icon.png" min_sdk_android: 21 # min sdk для android min:16, по умолчанию 21 web: generate: true image_path: "assets/images/icon.png" background_color: "#hexcode" theme_color: "#hexcode" windows: generate: true image_path: "assets/images/icon.png" icon_size: 48 # min:48, max:256, по умолчанию: 48 macos: generate: true image_path: "assets/images/icon.png"
<application android:label="appName" android:name="${applicationName}" android:icon="@mipmap/launcher_icon">
-
Я уже пробовал
flutter clean
и пересобрал APK, но пользовательская иконка по-прежнему не отображается. -
Я также пробовал удалить и переустановить приложение на своём устройстве и очистил кэш приложения, но оно по-прежнему показывает стандартную иконку робота Android.
Я проверил путь к изображению и убедился, что иконка в формате PNG, квадратная и соответствует размерным рекомендациям.
Есть идеи, почему иконка заставки не отображается правильно на Android?
Окружение:
-
Версия Flutter:
3.16.9
-
flutter_launcher_icons:
v0.13.1
-
Android SDK:
C:\\Users\\...
-
В текущей версии flutter_launcher_icons v.0.14.1 для android есть ошибка: https://github.com/fluttercommunity/flutter_launcher_icons/issues/600
Попробуйте использовать более раннюю версию (0.13.1) пока…
Похоже, проблема в конфигурации вашего файла pubspec.yaml. Пакет flutter_launcher_icons ожидает, что конфигурация будет под ключом flutter_icons, а не flutter_launcher_icons. Вот как вы можете это исправить:
-
Обновите конфигурацию в вашем файле pubspec.yaml: замените flutter_launcher_icons: на flutter_icons:. Ваша обновлённая конфигурация должна выглядеть так:
android: "launcher_icon" ios: true image_path: "assets/images/icon.png" min_sdk_android: 21 # min sdk для android min:16, по умолчанию 21 web: generate: true image_path: "assets/images/icon.png" background_color: "#hexcode" theme_color: "#hexcode" windows: generate: true image_path: "assets/images/icon.png" icon_size: 48 # min:48, max:256, по умолчанию: 48 macos: generate: true image_path: "assets/images/icon.png"
-
Перегенерируйте иконки заставки:
Запустите следующие команды в вашей терминале:flutter pub get flutter pub run flutter_launcher_icons:main
-
Очистите и пересоберите ваш проект:
flutter clean flutter build apk
-
Проверьте файлы иконок: Убедитесь, что файлы иконок заставки были сгенерированы в правильных директориях:
android/app/src/main/res/mipmap-*/launcher_icon.png
- Еще раз проверьте путь к изображению: подтвердите, что изображение по адресу assets/images/icon.png существует и доступно. Изображение должно быть:
В формате PNG
Квадратным (равная ширина и высота)
С адекватным разрешением (рекомендуется не менее 1024x1024 пикселей)
- Подтвердите конфигурацию AndroidManifest.xml: ваш AndroidManifest.xml кажется правильным, но для уверенности он должен включать:
<application
android:label="appName"
android:name="${applicationName}"
android:icon="@mipmap/launcher_icon">
- Удалите существующее приложение перед переустановкой: иногда кэшированные иконки могут всё-таки отображаться. Полностью удалите приложение с вашего устройства перед его переустановкой.
Если ваша иконка черная после успешной сборки, возможно, вы можете попробовать следующее:
image_path: "assets/images/icon.png"
android: true
ios: true
image_path_android: "assets/images/icon.png"
min_sdk_android: 21 # min sdk для android min:16, по умолчанию 21
adaptive_icon_background: "#ffffff"
adaptive_icon_foreground: "assets/images/icon.png"
Не забудьте также проверить путь к изображению!
Ответ или решение
Проблема с иконкой лаунчера в Flutter на Android: подробное руководство по устранению неполадок
Разработка приложений на Flutter предоставляет множество преимуществ, однако проблемы с отображением кастомной иконки лаунчера на Android могут вызвать затруднения. Если вы столкнулись с ситуацией, когда иконка вашего приложения не отображается после успешной сборки, следуйте этому детальному руководству для решения проблемы.
Шаги по устранению неполадок
-
Проверка конфигурации в
pubspec.yaml
:
Убедитесь, что конфигурация плагинаflutter_launcher_icons
корректна. Обратите внимание, что начиная с версии0.14.1
, ключ должен бытьflutter_icons
, а неflutter_launcher_icons
. Пример правильной конфигурации:flutter_icons: android: "launcher_icon" ios: true image_path: "assets/images/icon.png" min_sdk_android: 21
Убедитесь, что вы снова проверили все параметры, особенно
image_path
. -
Генерация иконок:
После внесения изменений вpubspec.yaml
выполните следующие команды в терминале для обновления зависимостей и генерации иконок:flutter pub get flutter pub run flutter_launcher_icons:main
-
Очистка и сборка проекта:
Выполните очистку кеша и пересоберите приложение:flutter clean flutter build apk
-
Проверка файлов иконок:
Убедитесь, что иконки были сгенерированы и находятся в правильных директориях. Проверьте наличие файлов в следующих каталогах:android/app/src/main/res/mipmap-*/launcher_icon.png
-
Проверка формата и размера изображения:
Убедитесь, что ваш иконка соответствует следующим критериям:- Формат PNG
- Квадратная форма (ширина и высота равны)
- Рекомендуемое разрешение не менее 1024×1024 пикселей
-
Проверка
AndroidManifest.xml
:
Ваш файлAndroidManifest.xml
должен содержать правильные настройки, включая полеandroid:icon
. Пример:<application android:label="appName" android:name="${applicationName}" android:icon="@mipmap/launcher_icon">
-
Переустановка приложения:
После выполнения всех вышеописанных шагов полностью удалите приложение с устройства перед повторной установкой. Это поможет избежать проблем с кэшированием иконок. -
Адаптивные иконки (по желанию):
Если ваша иконка отображается черной, вам стоит попробовать установить адаптивные иконки. Пример конфигурации:flutter_icons: android: true ios: true image_path_android: "assets/images/icon.png" min_sdk_android: 21 adaptive_icon_background: "#ffffff" adaptive_icon_foreground: "assets/images/icon.png"
Убедитесь, что путь к изображению правильный.
Заключение
Соблюдение вышеперечисленных шагов должно помочь вам решить проблему с отображением иконки лаунчера в вашем приложении Flutter для Android. Если проблема сохраняется, рассмотрите возможность проверки официальной документации и репозиториев GitHub на наличие обновлений и исправлений от сообщества. Не забывайте актуализировать зависимости и корректно настраивать окружение разработки.
Для повышения видимости вашего приложения в Google Play, убедитесь, что иконка лаконична и легко распознается, а также соответствует дизайну вашего приложения.
Я недавно столкнулся с этой же проблемой и после долгих поисков нашёл решение. Оказывается, в конфигурации pubspec.yaml нужно использовать ключ `flutter_icons` вместо `flutter_launcher_icons`. После замены и повторной генерации иконок моя кастомная иконка наконец-то появилась на Android. Также убедитесь, что версия пакета flutter_launcher_icons совместима — я использовал версию 0.13.1, чтобы обойти известный баг. Возможно, это поможет решить вашу проблему.