应用程序启动器图标更改为奥利奥上的默认图标

app launcher icon changed to default icon on Oreo

我创建了一个 Android 应用程序,它有自己的启动器图标。它与牛轧糖配合得很好。但是有了 Oreo,我的图标被默认的 Android 图标取代了。 我已经在 mipmap 资源中为几个密度定义了 ic_launcher.pngic_launcher_round.png

我的清单包含以下行:

android:roundIcon="@mipmap/ic_launcher_round"

我应该怎么做才能让我自己的图标出现在奥利奥上?

对于API26+默认Android应用模板定义另一个图标资源文件夹

mipmap-anydpi-v26

该文件夹(通常)包含两个 xml 文件 ic_launcheric_launcher_round,它们与清单中为 API 26+

声明的图标资源相匹配

这些文件的内容如下所示:

<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@drawable/ic_launcher_background"/>
    <foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

为了获得您的图标,您还需要更改此处列出的所有可绘制对象(在所有密度桶中)- 即 ic_launcher_backgroundic_launcher_foreground

或者您可以只删除该文件夹,在这种情况下 android 将回退到使用您的 png 图标,但它们不会按原样显示,并且通常会绘制在白色背景上。

您可以在以下位置阅读更多信息:Adaptive icons

最佳解决方案是删除 mipmap-anydpi-v26 文件夹,然后应用程序将采用默认图标。在 android studio 项目模式中转到此包

res/mipmap-anydpi-v26

删除并重建 运行 项目。

我的解决方案: 检查 res/mipmap-anydpi-v26 文件夹,然后您将看到 ic_launcher.xml 和 ic_launcher_round.xml 文件 编辑这些 xml 文件以指向您要使用的实际 png 文件:

如果 drawable 文件夹中没有这样的 png 文件,请添加它。

问题解决了。