[英]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>
对于清单中的主要活动,您必须将其添加到类别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>
如果您在升级 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 的系统缓存来解决,它对我来说很好,步骤:
退出 Android Studio
转到路径 > C:\Users\YOUR_WINDOW_USER_NAME.AndroidStudio3.3\system
然后你有一个 \caches 文件夹,删除这个缓存文件夹
现在打开 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。
我在这里尝试过解决方案和其他问题
最后,活动标签有<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.