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


82

我正在编写一个简单的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!

Answers:


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>

6
那些看起来总是一样,它们不是应用程序中的类,而是正在发生的动作。同样,您可以在其他操作上触发“活动”。例如<action android:name =“ android.intent.action.VIEW”> </ action> <category android:name =“ android.intent.category.DEFAULT”> </ category> <category android:name =“ android .intent.category.BROWSABLE“> </ category>
tribe84 2011年

“基本上”可以帮助Android决定如何处理Activity。请参阅文档的“意图”部分
dbryson 2011年

2
别忘了将此属性的值修改android:name="ExampleActivity"为适当的活动主类。
奥马尔2015年

51

单个intent-filter标签中的多个action标签也将导致相同的错误。


我收到了反对票。谁能确认此症状是否已解决?对我来说,这总是像个虫子。
Gusdor '16

24

就像上面的Gusdor所说,“单个intent-filter标签中的多个action标签也将导致相同的错误。” (给他功劳!我可以为此亲吻Gusdor!)
我没有找到任何有关此事实的文档!我添加了一个新的(USB)操作,并且很聪明,我将其混入了相同的Intent过滤器中。它破坏了发射。就像古斯多(Gusdor)所说,一种意图过滤器,一种行动!显然,每个动作都应放入自己的意图过滤器中。
它应该看起来像这样...

<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!有效!


我一直在寻找
Vijay

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>

8

检查您的manifest.xml。确保在那里有“启动器”类别。

<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

我通过在应用程序标记中添加活动阻止来解决此问题。我使用向导创建了项目,但我不知道为什么我的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>

然后我在模拟器上获得了期望的输出。


5

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

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


这确实是我的问题。
2013年

2

我遇到了同样的问题,事实证明我在xml标记中有一个'\'而不是'/'。它仍然给出相同的错误,只是由于语法问题。


2

如果您使用的是Google为Android开发提供的标准Eclipse IDE,则可以在创建新的Activity时选中“ Launcher Activity”复选框。如下请见:

在此处输入图片说明


2

在Eclipse何时可以做到这一点:

在此处输入图片说明

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


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”将uses-sdk标签编辑为17

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

1

您没有在清单文件中指定意图过滤器元素。清单文件是:

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

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


1

清单区分大小写,因此请比较此行是否存在大小写不匹配,尤其是其中的单词MAIN

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


1

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

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

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

0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.