如果在运行/调试配置中,如果我指定了启动活动,那么我的应用运行正常,但是当我选择“启动默认活动”时,我会收到“未找到启动器活动!”尽管事实上我在清单文件中指定了启动活动,但是来自android adb的错误。我正在使用android 2.1。
我尝试刷新文件/项目,清理并重建,删除文件并重新编写文件,创建新项目并复制/粘贴所有代码并执行Android工具 - >修复项目属性。我试过Android工具 - >重命名应用程序包,它会提示我更新项目启动配置(我说是的,但它仍然无法解决问题)。
我也尝试过不同的设备。 My Home活动扩展了另一个活动,并且位于我的src文件夹中的自己的Home.java文件中。这就是我的清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.geogreenweb.localvore"
android:versionCode="1"
android:versionName="1.0">
<application
android:icon="@drawable/icon"
android:label="@string/general_app_name"
android:debuggable="true">
<meta-data android:name="android.app.default_searchable"
android:value=".localvorebeta6" />
<activity android:name="com.geogreenweb.localvore.Home"
android:label="@string/general_app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
<activity android:name="com.geogreenweb.localvore.Quit"
android:label="Quit">
</activity>
<activity android:name="com.geogreenweb.localvore.InSeason"
android:label="In Season">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
<activity android:name="com.geogreenweb.localvore.List"
android:label="A - Z">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
<activity android:name="com.geogreenweb.localvore.Local"
android:label="Local"
android:configChanges="orientation"
android:windowSoftInputMode="stateHidden">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
<activity android:name="com.geogreenweb.localvore.Details"
android:label="Details">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
<activity android:name="com.geogreenweb.localvore.Search"
android:label="Search">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
<activity android:name="com.geogreenweb.localvore.Map"
android:label="Map"
android:windowSoftInputMode="stateHidden">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
<activity android:name="com.geogreenweb.localvore.Help"
android:label="Help">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
</application>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-sdk android:minSdkVersion="7" />
</manifest>
更新:我更改了其中一个活动标签,并在应用程序中显示了不同的标签,因此正在拾取清单文件的更改,但仍然会收到“无启动活动”错误
更新2:我设法通过最终创建一个新项目来解决问题,但前提是我在制作新项目时选择了创建活动的选项,然后将剩下的内容复制/粘贴到项目
答案 0 :(得分:2)
我唯一能想到的就是线条
<activity android:name="com.geogreenweb.localvore.Home"
尝试使用
<activity android:name=".Home"
代替
答案 1 :(得分:2)
如果您删除:
<action android:name="android.intent.action.SEARCH" />
它会正常启动。 我不知道为什么......它只对我有用。我还在寻找原因?!!
更新1: 我发现了这个:
No Launcher activity found, despite being declared in manifest.xml 还是不知道为什么? ..还在寻找它。
更新2: GOT IT!
http://developer.android.com/guide/topics/intents/intents-filters.html
过滤器具有与Intent对象的操作,数据和类别字段并行的字段。在所有三个区域中针对过滤器测试隐式意图。要传递给拥有过滤器的组件,它必须通过所有三个测试。如果它甚至其中一个失败,Android系统将不会将其传递给组件 - 至少不是基于该过滤器。但是,由于组件可以有多个intent过滤器,因此不通过组件过滤器之一的intent可能会在另一个过滤器上通过。
在我们的例子中,这意味着系统使用MAIN操作和LAUNCH类别发送意图。它找到了以下内容:
但..如果你把SEARCH动作放在另一个动作中,那么包含MAIN和LAUNCHER标准就会通过。
答案 2 :(得分:1)
尝试将以下内容添加到启动器类别元素旁边的主启动器Activity
。
<category android:name="android.intent.category.DEFAULT"/>