Manifest仅配置一个启动项却出现两个Launcher图标,原因何在?
应用出现两个Launcher图标的其他排查方向
依赖库暗藏启动项
不少第三方SDK或依赖库会在自身Manifest中配置带有android.intent.category.LAUNCHER类别的Activity,哪怕你自己的Manifest只定义了一个启动项,合并后的最终Manifest会包含这些额外条目。你可以通过Android Studio的Merged Manifest标签查看完整合并结果,搜索LAUNCHER就能定位所有带启动图标的Activity。多构建维度配置重复
如果项目用了多渠道打包(比如Flavor、Build Type),某个渠道的专属配置文件可能额外添加了启动Activity定义,或是修改了Manifest合并规则,导致最终APK出现两个启动项。检查build.gradle里的productFlavors、buildTypes配置,以及对应渠道的Manifest文件。Activity别名配置
若Manifest中存在activity-alias标签,且给这个别名设置了LAUNCHER的intent-filter,也会生成独立的启动图标。检查是否有类似配置:<activity-alias android:name=".AliasActivity" android:targetActivity=".first_layer.MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity-alias>构建缓存残留
Android Studio的Instant Run或构建缓存可能导致旧配置残留,即使你修改了Manifest,仍会生成带两个图标的APK。试试执行Build > Clean Project+Build > Rebuild Project,关闭Instant Run后重新安装应用。
内容的提问来源于stack exchange,提问作者Alexander Stub Michelsen
相关产品推荐
相关产品推荐

