Android Studio 3.6.1
Flutter 1.15.17
使用ライブラリ
flutter_launcher_icons: ^0.7.4
media_notification:
git:
url: git://github.com/coderkkc/media_notification.git
【症状】
flutter_launcher_icons でいくらアイコン生成しても実際動かすとアプリのアイコンが緑色のドロイド君の
まま変わらなかった。
【原因】
原因はなんと、media_notification だった。このライブラリの生成物として
ic_launcher_foreground.pngとic_launcher_background.pngが
含まれており、生成物のマージの順序的にmedia_notification側の
ドロイド君で上書きされていたようだ。
【対策】
出力ファイルのファイル名を変更した。
pubspec.yaml
flutter_icons:
android: 'my_launcher' ←ココ
ios: true
image_path: 'lib/assets/icon.png'
adaptive_icon_background: '#ffffff'
adaptive_icon_foreground: 'lib/assets/icon.png'
ただしこれだと、Oreo(API Level 26)よりも前のアイコンしか
指定したアイコン名称になってくれない。
Oreo(API Level 26)以降の「アダプティブアイコン(Adaptive Icon)」は
flutter_launcher_iconsでは未対応のようなので、手動で書き換えた。
android/app/src/main/res/mipmap-anydpi-v26/sodoku_launcher.xml<xml version="1.0" encoding="utf-8"?><adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"><background android:drawable="@color/ic_launcher_background"/> <foreground android:drawable="@drawable/my_launcher_foreground"/> ←書き換え箇所 </adaptive-icon>
あとは以下のフォルダ中の
「ic_launcher_foreground」を
「my_launcher_foreground」に書き換えて完了。
drawable-hdpi
drawable-mdpi
drawable-xhdpi
drawable-xxhdpi
drawable-xxxhdpi
※ ic_launcher_background も使用している場合は同様に修正。
プロジェクト配下をファイル名「ic_launcher_foreground.png」で検索。
media_notificationビルドフォルダ中に問題のドロイド君アイコンが見つかった。
また、「merger.xml」中に以下の記述あり。
config=":media_notification" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~">
ic_launcher_foreground.pngもマージ対象になったのだろう。
なお、試行としてはmedia_notificationビルドフォルダ中のアイコンを
目的のアイコンで書き換えても、ビルド時に書きかわるのでダメ。
「merger.xml」ファイルに
config=":media_notification" ignore_pattern="!.png:!.svn:...のようにpngファイルを除外させようとしても、
こちらもビルド時に「merger.xml」ファイル自体が書きかわるのでダメだった。
この場合はたまたまmedia_notificationだったが、このライブラリに限らず、ライブラリ作成者がアイコンのことまで意識しないでリソースに入れたままライブラリ化してしまうと、同じことになりそうである。
同じ症状の方は参考にしてもらえればと思います。
0 件のコメント:
コメントを投稿