4

我正在使用 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>


你会说这个错误是由于我设置活动的方式引起的吗?如果是这样,你会如何建议我编辑活动来解决这个问题?

我从未在我之前构建的任何应用程序中看到过这种情况。

4

2 回答 2

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" />

并删除这两条线用于其他活动。

于 2012-07-12T14:35:02.140 回答
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

于 2012-07-12T14:36:12.143 回答