安卓:找不到启动器活动

3

我遇到了这个问题。 我创建了一个新的xml布局(启动画面),并在清单文件中将其设置为Launcher类别。 虽然我以前做过很多次,但从未发生过这种情况。

当MainActivity是LAUNCHER类别,并且我通过意图运行Spalsh Activity时,它可以正常工作。 反之,我会收到“找不到启动器活动”的错误。

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".SecondActivity"
        android:label="Second Activity" >
        <intent-filter>
            <action android:name="net.learn2develop.SECONDACTIVITY" />

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

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

没有问题,但如果我将其修改为:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".SecondActivity"
        android:label="Second Activity" >
        <intent-filter>
            <action android:name="net.learn2develop.SECONDACTIVITY" />

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

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

我遇到了错误。

<action android:name="android.intent.action.MAIN" /> 添加到 MainActivity。 - Pankaj Kumar
如果您正在使用Eclipse,可以使用向导创建新的Activity。在其中一个步骤中,您需要输入Activity的名称和布局文件的名称。在这里,您可以启用“Launcher Activity”复选框,Eclipse会正确地修改您的清单文件。 - optimusfrenk
2个回答

1

尝试这个:

<application

    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".SecondActivity"
        android:label="Second Activity" >
    </activity>
 </application>

1
尝试以下操作。
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".SecondActivity"
        android:label="Second Activity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />            
        </intent-filter>
    </activity>
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="net.learn2develop.SECONDACTIVITY" />  <!--(or android.intent.action.VIEW) -->
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
</application>

现在我做的是将类别都设置为LAUNCHER。它不再报错,而是直接启动MainActivity。 - Kartik Sharma
1
您尝试过上面的建议了吗?请参考链接https://dev59.com/K2015IYBdhLWcg3w9wp1以获取更深入的理解。 - A.Ruppin
1
MAIN操作是应用程序的主要入口点。LAUNCHER类别表示应该在应用程序启动器中列出入口点。请注意,在您修改的XML中,将“SecondActivity”操作标记为MAIN,并将“MainActivity”操作标记为ACTION_DEFAULT或“net.learn2develop.SECONDACTIVITY”,以实现正确的功能。 - A.Ruppin
谢谢。现在我明白了,MAIN操作是主入口点。我以为LAUNCHER类别意味着相应的活动必须启动。 - Kartik Sharma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接