Android App活动安装为多个图标

51 android

我的Android App有2项活动.登录屏幕和搜索屏幕.当我在模拟器或我的设备上部署应用程序时,我看到同一应用程序的2个图标.当我点击图标1时,它会打开屏幕1(登录屏幕),当我点击图标2时,它会打开屏幕2(搜索屏幕).我登录时的逻辑应显示搜索屏幕.不知道我什么时候犯了错误.

Aar*_*n C 82

您的清单文件应该只在您想要拥有图标的活动中包含此行:

<category android:name="android.intent.category.MAIN" />
Run Code Online (Sandbox Code Playgroud)

根据您的描述,听起来两个活动都有这一行.

  • `MAIN`不是一个类别; 这是一个动作.更一般地说,除非你需要一个活动,否则不要在清单中包含一个`<intent-filter>`.对于简单的应用程序,只有启动器中需要图标的活动才应具有"<intent-filter>". (6认同)
  • 您还应该检查引用的库项目的清单 (2认同)

Meg*_*gha 21

在您的mainfest文件中,当您在两个不同的活动标签中有以下标记时,Android应用程序似乎安装了两次.

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>    
Run Code Online (Sandbox Code Playgroud)

  • 我遇到了同样的问题,因为我将一个库作为项目依赖项包含在内,其AndroidManifest.xml包含一个intent filter定义 - >我删除了它,一切都开始正常工作了! (5认同)

mar*_*nke 5

@Adrian C 对他的回答的评论解决了我们的问题。

我们的主应用程序的清单文件只有一个intent-filter标签,仅指定一个活动作为应用程序的启动器活动。

所以我必须更深入地研究......

我们包含了库项目(幸运的是由我们编写),并且其中一个库项目的清单文件intent-filter在其活动上有一个标签,指定该活动作为启动器活动。

然后,当我们将该库项目包含在我们的主应用程序(它有自己intent-filter指定的启动器活动)中时,完整的源代码看到两个intent-filter标签将两个活动指定为启动器活动,因此创建了两个应用程序图标。

当我们删除intent-filter在库项目中指定启动器活动时,第二个应用程序启动器图标消失了。