我正在使用Eclipse开发Android应用程序,并且刚刚开始注意到一个奇怪的故障。
当我将应用程序部署到手机时由于某种原因,我的“应用程序”文件夹区域中会出现多个应用程序图标。点击时,每个图标都会将我带到我的应用程序中的不同类页面。还有其他人经历过这个吗?
以下是从我的笔记本电脑上的模拟器运行应用程序时的问题的屏幕截图。
由于问题出现在模拟器中,我知道不是我的手机导致错误。
您在该屏幕截图中看到的每个图标代表我的清单文件中的不同活动。
以下是我在清单中设置活动的方式。
<activity android:name=".MainJava">
<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.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".AppClass">
<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.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
你会说这个错误是由于我设置活动的方式造成的吗?如果是这样,您如何建议我编辑活动来解决此问题?
在我之前构建的任何应用程序中,我从未见过这个。
答案 0 :(得分:6)
仅MainActivity(Launcher Activity) have intent filter with action as Main and category as Launcher
,
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
并删除此两行用于其他活动。
答案 1 :(得分:2)
更改自:
<activity android:name=".MainJava">
<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.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".AppClass">
<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.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
要:
<activity android:name=".MainJava">
<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.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".AppClass">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
应该只有一个MAIN
和一个LAUNCHER