为什么集成Jetpack Compose后我的应用启动器图标无法显示?
排查步骤与解决方案
- 优先检查你的
Theme.App.DayNight.NoActionBar主题配置,删除以下可能引发问题的属性:- 若存在
<item name="android:icon">@android:color/transparent</item>这类透明图标配置,会覆盖Application层级的图标设置,导致启动器显示透明图标,看起来如同没有图标 - 若存在
<item name="android:windowDisablePreview">true</item>配置,小米、华为、OPPO等国产ROM的旧版本系统会无法正确识别启动入口,进而不在桌面展示应用图标
- 若存在
- 给ComposeActivity显式声明图标与标签属性,避免主题配置覆盖Application层级的默认设置,修改后的Activity配置如下:
<activity android:name=".ui.ComposeActivity" android:exported="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:theme="@style/Theme.App.DayNight.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
- 若上述操作无效,先卸载设备上所有同包名的测试应用,避免多版本冲突导致图标被隐藏,再重新安装测试。
- 可通过adb命令验证启动配置是否被系统识别:
adb shell dumpsys package com.es0329.app | grep -A 20 "MAIN"
如果输出结果中包含你的ComposeActivity与LAUNCHER category的匹配信息,说明配置逻辑无问题,为ROM识别异常,重启设备即可恢复图标显示。
内容的提问来源于stack exchange,提问作者es0329
相关产品推荐
相关产品推荐

