这是不是Android Application creating two launcher icons的副本(我的清单中没有多个LAUNCHER
定义),也没有Android Application Creating Two Launcher Icons instead of One(重启设备不会删除第二个启动器图标。)
我的Android应用程序正在创建两个启动器图标,但其中一个似乎来自应用程序本身,而不是任何活动。我把我的AndroidManifest.xml
裁剪成最小的(加上干净并重建并重新安装),我仍然得到两个图标(在我的HTC One M8物理手机和我的Nexus 5仿真器上):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".SplashActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
我的清单中没有其他其他。
...应用程序本身,因为我已经定义它以某种方式创建一个图标?或者还有其他一些方法,我最终得到了多个启动器图标?
如果我将android:label
和android:icon
功能移动到.SplashActivity
定义中,则创建的其中一个启动器图标将替换为默认的绿色小机器人图标。
答案 0 :(得分:3)
活动和其他显而易见的好处来自各种来源:
main
sourceset minSdkVersion
) Android Studio 2.2为我们提供了一个方便的工具来检查进入我们APK的真实清单,并从所有这些来源合并。如果您在Android Studio中打开清单,请单击“Manifest Merger”子标签(朝向IDE底部)。这将显示合并清单中的内容和应该归咎于它的来自哪里。
如果您在清单中看到其他活动,那么这就是启动器图标的来源。然后,你需要决定:
tools:replace
属性装配清单中的另一个活动元素,以覆盖库中的一个并禁止<intent-filter>
答案 1 :(得分:0)
我的问题是,我向多个活动添加了以下意图过滤器。将其配置为一个活动可以为我解决该问题。
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>