繁体   English   中英

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

[英]Could not identify launch Activity: Default Activity not found

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

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

在清单中。 而且我已经尝试过使缓存无效/重新启动,但仍然没有用。 并且包含主要活动的类文件在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 是我想用作启动器活动的活动。 在此处输入图像描述

对于清单中的主要活动,您必须将其添加到类别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>

检查这个活动和这个开始另一个活动

所以你的代码是:

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

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

单击“文件”,然后单击“使缓存无效”


我有几次“未找到默认活动”问题,我可以解决重新启动我的 android Studio 的问题。

虽然这个问题有点过时,但我会在所有给定的答案中添加以下内容:

对于多模块项目,请仔细检查您是否修改了与您尝试运行的Configuration相对应的Manifest

遇到了同样的问题,花了 20 分钟才发现我试图运行错误的配置(在ModulbeB中有一个Application ,同时认为我正在从ModuleA运行一个)。

有时您正在处理其他模块默认可运行模块更改,因此您必须更改它。 在此处输入图像描述

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

File -> Invalidate Caches / Restart...

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

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

我的项目有这些问题:

  • 未找到默认活动

  • xml 智能感知不工作

  • kotlin 标准函数未检测到

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

  1. 退出 Android Studio

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

  3. 然后你有一个 \caches 文件夹,删除这个缓存文件夹

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

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

退出你的 android studio IDE。 然后在 .AndroidStudio3.2 文件夹中找到“caches”文件夹。

地点

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

例如。

假设说 YOUR_USERNAME 被称为 Admin。

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

删除缓存文件夹并启动您的 android studio IDE。

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

  • 清理 & 重建 & 无效并重新启动
  • 确保活动将 LAUNCHER 作为类别
  • 删除 Android 缓存文件夹

最后,活动标签有<activity android:name="com.exmaple.todo.MainActivity" />当我将其更改为<activity android:name=".MainActivity" />应用程序工作。

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

如果您的活动位于不同的模块中(例如 ':library),并且您忘记在 :app 模块的 dependencies{} 脚本块中指定子项目,则不会导入 :library 的清单以及它声明的活动。

dependencies {
   api project (':library')

您可以使用以下 Android Studio 菜单命令检查是否所有活动都显示在您的 app-debug.apk 中:

->构建->分析APK->app-debug.apk

现在打开 AndroidManifest.xml 并检查其活动声明。

当我以某种方式将 Android Studio 升级到2021.1.1.23时,我的运行配置从app切换到models ,产生了这个错误。 切换回app为我解决了这个问题。

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

这也发生在我身上,我花了很长时间才弄清楚原因,但我发现的一个奇怪的错误是,如果你在没有调试模式的情况下在代码中运行带有断点的应用程序,则会导致此错误发生。

现在快速修复:仅将断点用于调试模式。

检查您的 AndroidManifest.xml 中的重复初始化活动

像下面这样:

        <activity android:name=".nim.qiaqia.lota.LotaProduct"/>
        <activity android:name=".nim.qiaqia.lota.LotaOrderDetail"/>
        <activity android:name=".nim.qiaqia.main.activity.RechargeListLotaActivity"/>
        <activity android:name=".nim.qiaqia.lota.MiningCoinLota"/>
        <activity android:name=".nim.qiaqia.lota.LotaOrderDetail"/>

这也可能导致“未找到默认活动”。因此,将其删除并查看。它的工作原理!:)

在我的情况下,android manifest 是正确的。 我试图使缓存无效并重新启动,但没有奏效。 然后重建项目,它也没有工作。

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

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

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

在更改启动活动添加intent-filter但未将其导出后,我在 android 12+ 中收到此错误。
所以不要忘记。

           
android:exported="true"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM