这是什么意思“找不到启动器活动!”

时间:2011-01-26 04:17:51

标签: android eclipse

我正在编写一个简单的Android程序,并且没有错误,我不知道它们是什么。我的程序是正确的,但显示不输出。 我认为这是因为这两行:

[2005-01-06 19:56:38 - my_Android] No Launcher activity found!
[2005-01-06 19:56:38 - my_Android] The launch will only sync the application package on the device!

17 个答案:

答案 0 :(得分:158)

以下是AndroidManifest.xml的示例。您需要在意图过滤器中为要在启动时启动的活动指定MAIN和LAUNCHER

<application android:label="@string/app_name" android:icon="@drawable/icon">
    <activity android:name="ExampleActivity"
              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>

答案 1 :(得分:51)

单个intent-filter标记中的多个操作标记也会导致相同的错误。

答案 2 :(得分:23)

与Gusdor上面所说的一样,“单个intent-filter标签中的多个动作标签也会导致相同的错误。” (给他信用!我可以亲吻Gusdor吧!)
我没有找到任何关于这个事实的文档! 我添加了一个新的(USB)动作并且很聪明,我将它集中在同一个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.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>

当我这样做时,WAZOO!它有效!

答案 3 :(得分:17)

您是否在应用程序启动时将活动设置为已启动的活动?

这是在您的Manifest.xml文件中完成的,例如:

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

答案 4 :(得分:8)

检查您的manifest.xml。确保你有类别LAUNCHER。

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

        </intent-filter>
    </activity>

答案 5 :(得分:6)

这意味着当应用程序从启动器打开时,您没有指定Android的活动作为默认值启动。您必须在Manivesst中添加一个Intent Filter,以便在启动应用程序时将其作为默认操作。

阅读http://developer.android.com/guide/topics/intents/intents-filters.html#ccases了解详情。

答案 6 :(得分:5)

我通过在应用程序标记中添加活动块来解决问题。我使用向导创建了项目,我不知道为什么我的AdroidManifest.xml文件没有包含应用程序块?我添加了应用程序块:

    

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".ToDoListActivity"
        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>

我在模拟器上获得所需的输出。

答案 7 :(得分:4)

正如已经指出的那样,此错误可能是由于intent-filter丢失或不正确造成的。

我想补充一点,如果您在启动器活动中设置android:exported="false"(在清单中),也会显示此错误。

答案 8 :(得分:2)

我有同样的问题,结果我在xml标签中有一个'\'而不是'/'。它仍然给出了相同的错误,但仅仅是由于语法问题。

答案 9 :(得分:2)

在Eclipse中可以做到这一点:

enter image description here

但最好在Android清单文件中进行相应的更改。

答案 10 :(得分:2)

如果您使用谷歌为Android开发提供的标准eclipse IDE,您可以在创建新活动时检查“启动器活动”复选框。请在下面找到:

enter image description here

答案 11 :(得分:1)

清单区分大小写,因此请比较以下任何不匹配的行,尤其是单词MAIN

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

答案 12 :(得分:1)

MAIN将决定应用程序启动时将使用的第一个活动。 Launcher将在应用程序仪表板中添加应用程序。

如果您已经拥有它们并且仍然收到错误消息但可能是因为您可能在intent-filter中使用了更多类别或操作。在意图过滤器中,只能有一个这样的标签。要添加其他类别,请将其放在另一个意图过滤器中,如下所示

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

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

        <!--
             TODO - Add necessary intent filter information so that this
                Activity will accept Intents with the
                action "android.intent.action.VIEW" and with an "http"
                schemed URL
        -->
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <data android:scheme="http" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>

答案 13 :(得分:1)

您可以在eclipse清单可视化编辑器中添加启动器到活动:

Application Nodes section should look like this:

答案 14 :(得分:1)

您错过了在清单文件中指定intent过滤器元素.Manifest文件是:

<application android:label="@string/app_name" android:icon="@drawable/icon">
    <activity android:name="Your Activity Name"
              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>

正确添加并检查。希望这会有所帮助..

答案 15 :(得分:1)

只需将其添加到AndroidManifest.xml文件中的aplication标记

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

并编辑android-targetSdkVersion =“16”到17的uses-sdk标签

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

答案 16 :(得分:0)

您尚未在要首先显示的活动中包含Launcher intent过滤器,因此它不知道应用程序启动时要启动哪个活动,因此通过在manifest.xml中包含启动器过滤器意图来告诉系统

相关问题