web-dev-qa-db-ja.com

適応アイコンを使用すると、レガシーアイコンが表示されない

アプリアイコンを変換して、Android oのアダプティブアイコンとImage Asset Studio in Android studio

aPI 25を実行しているデバイスでプロジェクトを実行すると、デフォルトの緑Androidアイコンが表示され、アイコンは表示されません。

これは私のマニフェストです

<application
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    Android:theme="@style/AppTheme"
    Android:allowBackup="false"
    Android:roundIcon="@mipmap/ic_launcher_round"
    tools:replace="allowBackup"
    tools:ignore="GoogleAppIndexingWarning">

これらは画像アセットスタジオが作成したファイルです

enter image description here

これは単にAndroid Studioのバグですか、何か見落としていましたか?

22
tyczj

私も同じトラブルを抱えていたので、mipmap-anydpiディレクトリからmipmap-anydpi-v26

どうやらic_launcher.xmlファイルは古いAndroidバージョンを混同し、これによりOを除くすべてから隠されます。いずれにしても、私のアイコンはすべてのバージョンで動作します(少なくともSDK 11まで)。

32
String

解決策は、APIレベル26以上に適用可能なアダプティブアイコンのmipmap-anydpi-v26/ic_launcher.xmlおよび他のAPIレベルのすべてのmimpapフォルダーにic_launcher.png(注:ic_launcher.xmlではない)を配置することです。


説明

基本的な問題mipmap-anydpiは、他のすべてのmipmap-*よりも優先されます。そのため、mipmap-anydpiでリソースが見つかった場合、常に優先されます。 mipmap-anydpi-v26はこの上のフィルターであり、mipmap-anydpi-v26からのリソースはデバイス密度に関係なく常に選択されることを示しますAPIレベルが26以上の場合のみ(Oreo)。

マニフェストにはAndroid:icon="@mipmap/ic_launcher"があります

デバイスのAPIレベルが26以上の場合Android=はmipmap-anydpi-v26/ic_launcher.xmlを使用することを選択し、すべて正常に動作します。

この問題は、APIレベルが26未満の場合に発生します。Android ic_launcherという名前のリソースを検索する統計。APIレベルの制約のため、mipmap-anydpi-v26に移動して検索することはありません。次に、mipmap-anydpiでリソースを検索し、ない場合は実際の密度リソース(例:mipmap-mdpi)を検索します。

次に、ic_launcher.xmlをAndroid sdk 26未満のデバイスに与えることはできません。アダプティブアイコンが何であるかがわからないためです。

したがって、解決策は、APIレベル26以上に適用可能なアダプティブアイコンのmipmap-anydpi-v26/ic_launcher.xmlと、他のAPIレベルのすべてのmimpapフォルダーにic_launcher.png(注:ic_launcher.xmlではない)を配置することです。

12
Aniket Thakur

私は同じ問題に直面し、以下のように解決しました。

ic_launcher.xmlic_launcher_round.xmlmipmap-anydpi-v26に入れる必要があります(同じフォルダーにic_launcher.png/jpgまたはic_launcher_round.png/jpgがないことを確認してください) 。

ic_launcher.pngmipmap-hdpi/mdpi/xhdpi/xxhdpi/xxxhdpiに配置する必要があります(これらの同じフォルダーにic_launcher.xmlic_launcher_round.xmlが含まれていないことを確認してください)。

これを行うことにより、プロジェクトの構築/実行中にエラーが発生することはありません。

同じ問題を抱えている人の助けになることを願っています...

1
Ashok

それでも動作しない場合は、XMLスキーマをチェックしてください。Android studioから自動インポートを使用する場合、動作しません。/apk/res/Androidである必要があります。コードは次のとおりです。

<adaptive-icon xmlns:Android="http://schemas.Android.com/apk/res/Android">
  <background Android:drawable="@mipmap/ic_launcher_background"/>
  <foreground Android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>
0
louis bui