我正在编写一个简单的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!
答案 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中可以做到这一点:
但最好在Android清单文件中进行相应的更改。
答案 10 :(得分:2)
如果您使用谷歌为Android开发提供的标准eclipse IDE,您可以在创建新活动时检查“启动器活动”复选框。请在下面找到:
答案 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清单可视化编辑器中添加启动器到活动:
答案 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中包含启动器过滤器意图来告诉系统