Android清单文件未拾取默认启动活动

Android清单文件未拾取默认启动活动,android,eclipse,android-manifest,android-sdk-2.1,Android,Eclipse,Android Manifest,Android Sdk 2.1,如果在运行/调试配置中,如果我指定了启动活动,则我的应用程序运行良好,但当我选择“启动默认活动”时,我从android adb获得“未找到启动程序活动!”错误,尽管我已在清单文件中指定了启动活动。我使用的是安卓2.1 我尝试过刷新文件/项目、清理和重建、删除文件并重新编写、创建新项目、复制/粘贴所有代码,以及执行Android工具->修复项目属性。我已经尝试过Android工具->重命名应用程序包,它会提示我更新项目启动配置(我说是的,但它仍然不能解决问题) 我也尝试过不同的设备。My Home

如果在运行/调试配置中,如果我指定了启动活动,则我的应用程序运行良好,但当我选择“启动默认活动”时,我从android adb获得“未找到启动程序活动!”错误,尽管我已在清单文件中指定了启动活动。我使用的是安卓2.1

我尝试过刷新文件/项目、清理和重建、删除文件并重新编写、创建新项目、复制/粘贴所有代码,以及执行Android工具->修复项目属性。我已经尝试过Android工具->重命名应用程序包,它会提示我更新项目启动配置(我说是的,但它仍然不能解决问题)

我也尝试过不同的设备。My Home活动扩展了另一个活动,并位于My 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:我最终通过创建一个新项目解决了这个问题,但前提是我在创建新项目时选择了创建活动的选项,然后将其余内容复制/粘贴到项目中

我唯一能想到的就是行

<activity android:name="com.geogreenweb.localvore.Home" 

尝试将以下内容添加到主启动器
活动
的启动器类别元素旁边

<category android:name="android.intent.category.DEFAULT"/>

如果您卸下:

<action android:name="android.intent.action.SEARCH" />

还是不知道为什么。。还在找呢

更新2:明白了

筛选器具有与意图对象的操作、数据和类别字段并行的字段。隐式意图在所有三个方面都通过过滤器进行测试。要交付给拥有过滤器的组件,它必须通过所有三个测试。如果哪怕其中一个都失败了,Android系统也不会将其交付给组件——至少不会基于该过滤器。然而,由于一个组件可以有多个意图过滤器,一个未通过组件过滤器的意图可能会通过另一个过滤器

在我们的例子中,这意味着系统发送带有主操作和启动类别的意图。它会找到一个具有以下内容的:

  • 主要行动…………[通过]
  • 发布类别。。。。[通过]
  • 搜索操作………[失败]

  • 但是。。如果将搜索操作放在另一个中,则包含主条件和启动器条件的将通过。

    Home扩展了MenuActivity
    ,Home.java。MenuActivity是抽象的,所以它不在我的清单中。但是,将其添加到清单文件并不能解决问题,也无法工作。我试着在动作元素中改变类别和动作元素的顺序,即使在理论上这不重要。这没有什么区别,我应该补充一点,当我更改并保存清单文件时,我可以看到eclipse在后台重新构建项目。但是,它没有给我“启动配置更新”对话框:(仅在我尝试更改包名时出现,如上面的示例所示)
    <action android:name="android.intent.action.SEARCH" />