Android应用程序创建两个启动器图标

时间:2012-01-02 06:12:10

标签: android eclipse icons launcher launching-application

我在使用一段时间的应用程序时遇到了一个非常令人困惑的问题。突然,在运行我的应用程序时,我发现在发布时立即关闭了力量。

经过进一步调查,我在发射器中发现了两个发射器图标。如果应用程序正在运行,其中一个将恢复应用程序,如果应用程序未运行,则强制关闭。第二个将正常运行 - 正常启动应用程序并正常恢复。

我很困惑,因为我没有做任何事情(我能想到)导致这个问题。我没有更改清单中的任何内容,只是实现了一些新方法来更快地更改应用中的颜色。

无论是关闭手机,手动终止应用程序还是卸载/重新安装应用程序,这些问题在我的所有模拟器和设备中都会持续存在。一个简单的ctrl + z不起作用。澄清 - 我想要的是回到一个启动器图标来正常启动我的应用程序(没有什么特别的东西可以继续)。

更新

我现在面临着从任一图标启动时立即关闭的力量。我确实在我的Manifest中的两个活动中找到了代码,并将.LAUNCHER中的第二行更改为.DEFAULT确实解决了我原来的问题。但是,我现在总是立刻被迫关闭...现在我的原始发射器活动中存在问题(我可以看到)......我在尝试修复此问题时遇到了很多麻烦(不知道该怎么做我开始变得非常担心!

更新2:

我发现了我的问题,谢谢你们的帮助!实际上,我有两个独立且无关的问题同时发生。第一 - 我的启动器中的两个图标:因为我有两个活动而导致

5 个答案:

答案 0 :(得分:24)

两项活动

 <intent-filter>
     <action android:name="android.intent.action.MAIN" />
     <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>

删除第二个

答案 1 :(得分:2)

实际上,Android Launcher会显示所有类别为LAUNCHER而非应用程序的活动。

如果您的应用程序包含多个活动,则必须使用操作MAIN和类别LAUNCHER作为应用程序的默认活动(初始屏幕),而不是您在应用程序中使用的所有活动。如果您为应用程序中的每个活动添加相同内容,它将显示在Android Launcher中。

请阅读有关意图行动和类别的内容,您将理解。

答案 2 :(得分:2)

好吧,我遇到了同样的问题。问题是当我运行应用程序时,它创建了两个图标,一个名称为MyApp,另一个名称为SplashActivity。 当我尝试卸载SplashActivity(命名应用程序)时,在确认消息中它说

  

SplashActivity是MyApp的一部分,确定要卸载吗?

在查看了一些参考文献后,得出结论,当我们提出

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

在任何活动下,android认为这是App的MAIN入口点。并为该活动创建一个启动器图标。但名称保留为acivityName。

最后通过改变

的SplashActivity的Activity标签
 <activity
    android:name=".activities.SplashActivity"
    android:label="@string/title_activity_splash"
    android:theme="@style/SplashTheme">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
 </activity>

<activity
    android:name=".activities.SplashActivity"
    android:label="@string/app_name"
    android:theme="@style/SplashTheme">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

它解决了我的多个图标和启动器图标名称为activityName而不是appName的问题。

答案 3 :(得分:0)

在我的情况下,帮助了那样的事情

清单文件中的旧行

启动画面活动

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

主要活动

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

新的

启动画面活动

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

主要活动

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
</intent-filter>

只需在主要活动中删除此行

即可
<category android:name="android.intent.category.LAUNCHER" />

那就是它!

答案 4 :(得分:0)

在AndroidMenifest.xml文件中,你必须删除两个或三个android名称,即

<activity
    android:name=".SplashScreen"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>