【问题标题】:Could not identify launch Activity: Default Activity not found无法识别启动活动:未找到默认活动
【发布时间】:2016-02-24 15:25:50
【问题描述】:

我是 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 是我想用作启动器活动的那个。

【问题讨论】:

  • 您能发布您的完整清单吗?
  • 显示完整的 AndroidManifest.xml

标签: android android-manifest


【解决方案1】:

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

【讨论】:

  • 我在默认包下添加了自己的包。我是不是弄错了路径?
  • 我已经用你的代码更新了答案@JiaweiYang 现在检查:D
  • 我明白了...我使用“活动”而不是“活动”。现在我觉得我有点尴尬。谢谢!
  • 别担心,我们就是为此而来,很高兴! :)
  • 请注意,通过 Manifest 合并,您可以在不知不觉中将图书馆的活动集合并为“主要”(图书馆不应该有这样的活动,但仍然......)因此您最终可能会得到重复的主要意图 -过滤,你会得到那个错误。
【解决方案2】:

有时候重启Android Studio就可以解决


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

【讨论】:

    【解决方案3】:

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

    File -> Invalidate Caches / Restart...
    

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

        • 有什么区别?
        • @JerabekJakub 有时 android studio 无法找到活动,因此出现索引问题
        【解决方案6】:

        我的项目遇到了这些问题:

        • 未找到默认活动

        • xml 智能感知不工作

        • kotlin 标准函数未检测到

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

        1. 退出 Android Studio

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

        3. 那么你有一个\caches文件夹,删除这个caches文件夹

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

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

        【讨论】:

          【解决方案7】:

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

          位置

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

          例如。

          假设 YOUR_USERNAME 被称为 Admin。

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

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

          【讨论】:

            【解决方案8】:

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

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

            【讨论】:

              【解决方案9】:

              我已经尝试过这里的解决方案和其他问题

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

              在结束时,活动标签有 &lt;activity android:name="com.exmaple.todo.MainActivity" /&gt; 当我将其更改为 &lt;activity android:name=".MainActivity" /&gt; 时,应用程序工作正常。

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

              【讨论】:

                【解决方案10】:

                检查您的 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"/>
                

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

                【讨论】:

                  【解决方案11】:

                  在我的例子中 android manifest 是正确的。我尝试使缓存无效并重新启动,但没有成功。然后重建项目,它也没有工作。

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

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

                  【讨论】:

                    【解决方案12】:

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

                    【讨论】:

                      【解决方案13】:

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

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

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

                      有时您正在处理其他模块的默认可运行模块更改,因此您必须对其进行更改。

                      【讨论】:

                        猜你喜欢
                        • 2017-01-28
                        • 1970-01-01
                        • 2016-11-17
                        • 2020-09-22
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多