Android 11:不会显示我的应用的 xml 图标

Android 11: Will not show the xml icon of my app

提问人:aarelovich 提问时间:11/17/2023 更新时间:11/19/2023 访问量:42

问:

我试图弄清楚为什么在较新的 Android 版本中我的应用程序会出现一个通用的 android 图标。

我的图标被定义为 .xml 文件。

我的 Android Manifest 中有一个 LIne,内容如下:

<application
    android:allowBackup="true"
    android:icon="@drawable/app_icon"

Android Studio 甚至向我展示了侧边栏中图标的图片。

如果我尝试在较旧的手机(Android 8)上启动(USB调试)我的应用程序,图标显示得很好(我正在谈论您浏览已安装的应用程序的应用程序图标)

如果我尝试在我的新手机 (Android 11) 中启动它,我会得到绿色背景的通用图标,上面有小外星人,我想是 android 标志。

如何让较新的手机显示正确的图标?

人造人

评论

0赞 CommonsWare 11/17/2023
您可能需要切换到 PNG 或 WebP,并远离您正在使用的任何类型的 XML 定义的可绘制对象(例如,矢量可绘制对象)。
0赞 aarelovich 11/17/2023
我真的不记得我最初是如何创建XML的。有没有办法将XML转换为PNG。我什至不知道如何打开文件,除了使用文本编辑器
0赞 CommonsWare 11/17/2023
如果您在 Android Studio 中打开它,则可以预览图像,然后可以下载该图像或将其屏幕截图。

答:

0赞 Cloverleaf 11/17/2023 #1

您是否已经尝试重新启动新设备?我已经经历过 Android 的图标缓存与 Windows 存在类似的问题......

评论

0赞 aarelovich 11/17/2023
是的,我尝试多次重新启动它以解决不相关的问题
0赞 Cloverleaf 11/17/2023
@aarelovich 你是否一个接一个地命名了两个不同的图标?与任意 png 图标相同的效果?在重新安装之前,您可能已经尝试在新设备上卸载该应用程序...您的新设备上有特殊的启动器吗?app_icon
0赞 aarelovich 11/17/2023
我不确定你说的一个接一个是什么意思。我不认为我有任何其他带有 hta 名称的图标。不,我没有特殊的发射器
0赞 Cloverleaf 11/17/2023
@aarelovich我的意思是:您是否先使用名为“app-icon”的临时图标编译应用程序,然后用同名的最后一个图标替换临时图标,以便仅更改资源,而更改代码?如果没有设备在你身边并知道你已经尝试过什么,就很难猜出原因。我们只能猜测。最后的想法:尝试在新设备上安装带有图标的“Hello World”程序,然后至少您会知道您的应用程序还是新设备的 Android 是原因。
0赞 aarelovich 11/17/2023
谢谢你抽出时间,但我发现我用 PNG 来表达它
1赞 aarelovich 11/17/2023 #2

还行。知道了。谢谢@CommonsWare

我不得不为图像创建PNG版本(不同大小)。因此 shapeshifter.design 首先我使用网站将 XML 转换为 SVG,然后我在这里使用了答案:如何使用 ImageMagick 将 SVG 转换为 PNG?

编写将 SVG 转换为所需不同大小的 scritp。

我在这里将这些需求编写为PHP数组(我的脚本的一部分)。我使用PHP是因为我更喜欢“编写快速脚本”:

$SIZES = [
   "mipmap-hdpi"      => 72,
   "mipmap-mdpi"      => 48,   
   "mipmap-xhdpi"     => 96,  
   "mipmap-xxhdpi"    => 144,   
   "mipmap-xxxhdpi"   => 192       
];

对于那些不知道“=>”的左侧是数组的键和项目目录的 app/src/main/res 文件夹中的标识名称的人。右手边是尺寸。启动器图标都是正方形。