我在使用一段时间的应用程序时遇到了一个非常令人困惑的问题。突然,在运行我的应用程序时,我发现在发布时立即关闭了力量。
经过进一步调查,我在发射器中发现了两个发射器图标。如果应用程序正在运行,其中一个将恢复应用程序,如果应用程序未运行,则强制关闭。第二个将正常运行 - 正常启动应用程序并正常恢复。
我很困惑,因为我没有做任何事情(我能想到)导致这个问题。我没有更改清单中的任何内容,只是实现了一些新方法来更快地更改应用中的颜色。
无论是关闭手机,手动终止应用程序还是卸载/重新安装应用程序,这些问题在我的所有模拟器和设备中都会持续存在。一个简单的ctrl + z不起作用。澄清 - 我想要的是回到一个启动器图标来正常启动我的应用程序(没有什么特别的东西可以继续)。
更新
我现在面临着从任一图标启动时立即关闭的力量。我确实在我的Manifest中的两个活动中找到了代码,并将.LAUNCHER中的第二行更改为.DEFAULT确实解决了我原来的问题。但是,我现在总是立刻被迫关闭...现在我的原始发射器活动中存在问题(我可以看到)......我在尝试修复此问题时遇到了很多麻烦(不知道该怎么做我开始变得非常担心!
更新2:
我发现了我的问题,谢谢你们的帮助!实际上,我有两个独立且无关的问题同时发生。第一 - 我的启动器中的两个图标:因为我有两个活动而导致
答案 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)
<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>