在某些版本的 android 上显示 flutter 应用程序图标时出现问题

Issue displaying flutter app icon on certain versions of android

我有一个 flutter 应用程序,其中我使用 android studio 附带的图像资产工具在项目的 android 文件夹下生成了应用程序图标。在 android 的某些版本上,这个图标或 flutter 的默认图标都没有显示,这似乎告诉我这不仅仅是我提供的图标的问题,我反而得到了默认的绿色 android 作为这样:

上面的截图来自 android 5 模拟器(虽然很老现在它仍然在技术上得到 flutter 的支持所以我想测试一下)我在物理设备上遇到了同样的问题 运行 android 7,但图标似乎在以上任何版本上都显示正常。我注意到的另一件事是多任务菜单中没有出现应用程序名称,但我不确定这是否是一个完全不相关的问题。

如果有人能帮助我,那就太好了,因为我想不出我需要在项目中放置哪些其他图标,因为我认为我已经涵盖了所有选项。谢谢。

编辑 - 这是我的应用程序的 android 清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="me.letalis.testapp">
   <application
        android:label="Test App"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <!-- Specifies an Android theme to apply to this Activity as soon as
                 the Android process has started. This theme is visible to the user
                 while the Flutter UI initializes. After that, this theme continues
                 to determine the Window background behind the Flutter UI. -->
            <meta-data
              android:name="io.flutter.embedding.android.NormalTheme"
              android:resource="@style/NormalTheme"
              />
            <!-- Displays an Android View that continues showing the launch screen
                 Drawable until Flutter paints its first frame, then this splash
                 screen fades out. A splash screen is useful to avoid any visual
                 gap between the end of Android's launch screen and the painting of
                 Flutter's first frame. -->
            <meta-data
              android:name="io.flutter.embedding.android.SplashScreenDrawable"
              android:resource="@drawable/launch_background"
              />
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <!-- Don't delete the meta-data below.
             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>
</manifest>

资源文件夹:

按照这些步骤在 Android Studio 中 Change/Customize 启动器徽标,

*在项目视图中展开项目根文件夹

*右键单击应用程序文件夹

*在上下文菜单中转到新建->图像资源

*在出现的弹出窗口中 select 您想要的新徽标(image/clip art/text)。

*如果您正在 select 图像单选按钮(这是默认选择),如果您单击 3 个按钮以显示路径树以找到您的 .png 图像文件,很可能您可能看不到它,所以将它从 Windows 资源管理器(如果 Windows)拖放到树中,它就会出现并准备好进行 selected。

**不要忘记在清单中设置新图标的位置:将可绘制对象替换为 android:icon 中的小地图 –

....... Mipmap解决方案: 正如你看到的这个快照,我为每个版本设置了 Mipmap,你也可以照着做, 您必须为 anydpi-v26

创建一个 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="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>`