无法识别启动活动:未找到默认活动

时间:2015-11-22 13:52:38

标签: android android-manifest

我是Android的新手,我遇到了一个问题。 控制台说“无法识别启动活动:未找到默认活动”。 我添加了

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

在清单中。 我已经尝试过Invalidate caches / Restart,但仍然无效。 并且包含主要活动的类文件在android studio中变为绿色。我不知道这意味着什么。 这是我的清单文件。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mrrobot.mycoolweather" >
<uses-permission android:name="android.permission.INTERNET"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >
    <Activity       android:name="com.example.mrrobot.mycoolweather.activity.ChooseAreaActivity"
        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>

</manifest>

chooseAreaActivity是我想用作启动器活动的那个。 enter image description here

11 个答案:

答案 0 :(得分:26)

对于清单中的主要活动,您必须使用类别LAUNCHER(启动应用中的第一个活动)添加此内容:

<activity
    android:name=".MainActivity"
    android:label="YourAppName"
    android:theme="@style/AppTheme.NoActionBar" >
      <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

对于其他活动,您必须将类别更改为DEFAULT

<activity
    android:name=".OtherActivity"
    android:theme="@style/AppTheme.NoActionBar" >
    <intent-filter>
            <action android:name="package.OtherActivity" />

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

检查此Activity和此Start Another Activity

所以你的代码是:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mrrobot.mycoolweather" >
<uses-permission android:name="android.permission.INTERNET"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >

    <activity
        android:name=".activity.ChooseAreaActivity"
        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>

</manifest>

答案 1 :(得分:8)

有时只需重新启动Android Studio即可解决此问题

Click on "File" and then "Invalidate Cache"

我找不到&#34;默认活动&#34;问题几次,我可以解决重启我的Android工作室。

答案 2 :(得分:1)

如果您在升级IDEA,升级Android Studio版本或生成新APK后发现错误,则可能需要刷新IDE的缓存。

File -> Invalidate Caches / Restart...

答案 3 :(得分:0)

我的主要活动未在Android Manifest File中声明。这就是出现错误的原因。出现此错误是因为Android Manifest文件的声明问题。请检查一下。 :D

答案 4 :(得分:0)

清单文件中声明的元素名称错误 (将活动更改为活动)

<Activity       android:name="com.example.mrrobot.mycoolweather.activity.ChooseAreaActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </Activity>

将其更改为:

 <activity       android:name="com.example.mrrobot.mycoolweather.activity.ChooseAreaActivity"
        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 :(得分:0)

我的项目遇到以下问题:

  • 未找到默认活动

  • xml intellisense无法正常工作

  • kotlin标准功能未检测到

我所有上述问题都通过在主路径中删除Android Studio 3.3的系统缓存得以解决,它对我来说很好用, 步骤:

  1. 退出Android Studio

  2. 转到路径> C:\ Users \ YOUR_WINDOW_USER_NAME.AndroidStudio3.3 \ system

  3. 然后您有一个\ caches文件夹,请删除此缓存文件夹

  4. 现在打开Android Studio并加载您的项目

为我工作。.我浪费了几个小时来解决这个问题,最终以这种方式解决了。

答案 6 :(得分:0)

这里是解决此问题的方法。

转到

  

C:\ Users \ Admin.AndroidStudio3.2 \ system \ caches

删除缓存文件夹,现在打开工作室。它将起作用...

答案 7 :(得分:0)

这件事在我身上也花了很长时间才找出原因,但是我发现一个奇怪的错误是,如果您在代码中使用断点运行应用程序而没有调试模式,则会导致此错误发生。

目前的快速解决方案:仅将断点用于调试模式。

答案 8 :(得分:0)

我在这里尝试过解决方案和其他问题

  • 清理并重建并失效并重新启动
  • 确保活动的“启动者”为类别
  • 删除Android缓存文件夹

在结束时,活动标签为 <activity android:name="com.exmaple.todo.MainActivity" /> 当我将其更改为 <activity android:name=".MainActivity" />应用时有效。

如果其他解决方案不起作用,希望对您有所帮助。

答案 9 :(得分:0)

就我而言 android manifest 是正确的。我试图使缓存无效并重新启动,但没有奏效。然后重建项目,它也不起作用。

然后我意识到昨晚我添加了一个新库来构建 Gradle,它是这样的: implementation 'com.yalantis:eqwaves:1.0.1' 删除后一切正常。

提示: “始终跟踪您在项目中所做的事情,否则最终会浪费时间”

答案 10 :(得分:0)

如果您只启用了通过应用程序包构建应用程序,那么当您尝试将其安装为默认 APK 时也可能会出现此错误。将部署选项更改为来自 App Bundle 的 APK,一切顺利。