Android 启动器图标在 Android Oreo 中仍然显示默认

Android launcher icon still showing default in Android Oreo

我使用 Android Studio 3.0.1 更改了我的应用程序启动器图标:

File -> Image Asset

在 Android 8.1 中,图标如下图所示:

我的AndroidManifest详细信息

 <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:hardwareAccelerated="true"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

我仔细检查了图标。ic_launcheric_launcher_round 是我的新图标。

您需要为 8.1 添加圆形图标

 <application
    android:name=".aaa"
    android:allowBackup="true"
    android:roundIcon="@mipmap/ic_launcher"
    android:icon="@mipmap/ic_launcher"
    android:label="aaa"
    android:theme="@style/AppTheme">

我通过更改

解决了我的问题

classpath 'com.android.tools.build:gradle:2.3.3'

classpath 'com.android.tools.build:gradle:3.0.1'

在项目中 build-gradle

dependencies {
        //classpath 'com.android.tools.build:gradle:2.3.3'
        classpath 'com.android.tools.build:gradle:3.0.1'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

这会导致调味问题,可以通过添加

来解决

flavorDimensions "default"

申请中build-gradle

android {

...
flavorDimensions "default"
defaultConfig {
}


}

这可能会对遇到同样问题的人有所帮助。

在 Android Studio 中转到您要使用的 File -> New -> Image Asset -> Then browse your launcher icon,然后单击下一步以完成该过程。尝试使用 1024x1024 大小的图像或至少 512px 。看下图就清楚了。

第 1 步:转至 File -> New -> Image Asset

第 2 步:然后选择您的启动器图像并单击下一步以完成该过程,它将替换您当前的启动器图像。其他设置也请参阅图像,就像您必须 select Icon Type: Adaptive and Legacy

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

res/mipmap-anydpi-v26

删除它并重建 运行 程序。

在 Android Studio 中,使用 Image Asset 来(重新)创建您的图标。在 Windows、ctrl+shift+A。在 Mac、cmd+shift+A 上。完成后,保存并覆盖现有文件。那么问题就解决了。

您很可能会提供自己的图标和背景颜色(这只是一种颜色资源)。 Image Asset 将创建一组新的 ic_launcher_foreground.png。您会发现两组(现在)未使用的资源:ic_launcher_background.xml(提供带网格的绿色背景)和 ic_launcher_foreground.xml(提供 Droid 头部)。您可以安全地删除这些文件。

我有同样的症状,我导入的 SVG 图像不会显示在 API 26+ 上,但事实证明这是源 SVG 的复杂性问题。我在Inkscape中打开SVG,然后在图像中发现了一个特别复杂的路径:

扩展 > 修改路径 > 展平贝塞尔曲线...

如此处所述:SVG: simplify path to remove curves?

重新导入 SVG 后效果很好。

我遇到了同样的问题 - 默认图标出现在任务切换器中。为我修复的是从我的清单中删除圆形图标。

根据 Adaptive icons

的文档

You must only use the android:roundIcon attribute if you require a different icon asset for circular masks, if for example the branding of your logo relies on a circular shape.

(强调我的)

我的应用程序不需要圆形遮罩的不同资产 - 从清单中删除对圆形图标的引用导致 Android 在任务切换器中显示正确的启动器图标。