我将IntelliJ Idea 12.0.4升级到12.10 .
现在,我的Android项目中的所有模块都会出错:
Error: 找不到默认活动
我恢复到12.0.4并且它有效 .
有任何想法吗 ??我认为它可能与一些未安装的插件有关,因为唯一的其他东西可能是本地配置,但我删除了配置文件夹以确认,并没有改变任何东西 .
我在我的代码中发现了这个:
<context android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </context>
如果你仔细看,应该是 <activity android:name=".MainActivity"> .
<activity android:name=".MainActivity">
显然,我在某处重构了一个“活动”,它也改变了AndroidManifest中的名字 .
刚刚在android studio 2.1.2上遇到这个错误 . 通过将MAIN / LAUNCHER intent-filter添加到 flavour 清单中的默认活动来解决,尽管过滤器已经在默认清单中的默认活动中 . 它甚至在合并清单中,但工作室无法找到它,直到我在两个清单中重复过滤 .
将Android Studio从1.2.x更新为1.3后,我遇到了同样的问题,我尝试了所有建议,但没有任何效果 . 然后我这样做了:
转到运行/调试配置 . 选择提供错误的配置并将其删除 . 使用相同的名称和设置创建一个新的 . 之后,重新连接USB电缆并运行应用程序 .
这解决了我的问题 .
我最近遇到了类似的问题 . 问题出在activitymanifest xml文件中 . 请检查标语是否正确关闭 .
如果您在升级IntelliJ IDEA或Android Studio版本后或在生成新APK之后发现错误,则可能需要刷新IDE的缓存 .
File -> Invalidate Caches / Restart...
使高速缓存/重新启动无效
之后,您的应用必须运行!
如果您正在使用小部件应用程序,此解决方案应该适合您:
转到 Edit Configuration
Edit Configuration
将 Launch Option 设为 nothing
Launch Option
nothing
在我的情况下,我重构了一个名为"activity"的成员变量,我将其重命名为"context" ...我发现重构是在清单中的 activity 标签,我发现它们是 context 标签而不是......这真的很愚蠢来自Android Studio!
编辑androidmanifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.java2"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivityName"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
我在Android Studio 3.3 Canary 3中遇到了同样的问题 . 来自Android Studio 3.0 stabile版本的项目首先正常工作,而不是在一些清理/重建之后,它开始显示No Default Activity错误 . 我尝试重新安装此Android版alpha版本:再次出错 . 但后来开始在旧的稳定的Android,并使用apk安装,这个apk工作正常 .
此外,我的项目是使用Instant App(基础,功能,即时,app子目录)创建的 . 我认为这个Android Studio在分成这个多个目录的Manifest.xml文件中存在一些问题 .
所以我已将设置更改为:
我不能评论为什么升级IntelliJ可能会导致这个问题因为我不使用它 .
但是,该错误:“未找到默认活动”似乎告诉您,您没有在AndroidManifest.xml中声明的活动,该活动被标记为主要活动,将在应用程序启动时启动 .
您应该至少有一个看起来像这样的活动:
<activity android:name="com.your.package.name.YourActivity" 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 Studio将大多数XML文件中的所有 android:name 属性(包括清单)替换为Android Studio无法识别的 android:subject .
android:name
android:subject
如上图所示,IDE无法识别 android:subject 属性 . 因此,它将无法读取指定MainActivty的行 .
解决方案只是将每个 android:subject 更改为 android:name ,然后从Build菜单 - > Rebuild Project重建项目 . 重建项目时可能会遇到相同的问题,因此请执行与上面相同的操作 .
尝试右键单击该项目并选择 Open Module Settings . 然后转到模块中的 Sources 选项卡,找到 src 文件夹,右键单击它并将其标记为 Sources (蓝色) .
EDIT: Android Studio的更高版本中没有“源”选项卡,但您可以编辑 build.gradle 文件:https://stackoverflow.com/a/22028681/1101730
Build -> Rebuild Project
File -> Invalidate Caches.. -> Invalidate and restart
这个对我有用 . 重建项目以确保项目中没有错误 . 然后我们可以使缓存无效 .
我发现这个博客在我的案例中确实解决了这个问题 . 事实证明你必须添加某种意图:
<intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter>
这绝对是直截了当的 . 参考:
https://www.aboutonline.info/2018/08/error-running-app-default-activity-not-found-on-android-with-kotlin.html
上面没有任何东西帮助我 . 过了一段时间后,我发现IDEA将动作名称改为大写 . 喜欢:
<intent-filter> <action android:name="ANDROID.INTENT.ACTION.MAIN"/> <category android:name="ANDROID.INTENT.CATEGORY.LAUNCHER"/> </intent-filter>
恢复正常后,IDEA会识别默认值活动:
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
有时为所有用户卸载应用程序会有所帮助 . 转到设置中的应用程序列表转到您的应用程序或滚动到列表的末尾,然后卸载它 . 希望这可以帮助
@TouchBoarder几乎拥有它 . 虽然选择“不启动活动”会导致无法启动 .
在Android Studio的运行/调试配置 - > Android应用程序 - >常规 - >活动 - >选择选项“启动:”
选择你的活动 . 这并不能完全解决预期的行为,而是正确地覆盖它 .
那我也得到了这个错误,
错误:找不到默认活动
在我的情况下它是为了磨损模块..我不需要在那里的活动所以我所做的只是简单
去编辑配置 - >穿 - >启动选项 - >启动 - >没什么 .
应用更改 . 单击“确定” .
从清单文件中删除现有的默认活动代码 .
注意:不要忘记清理项目和同步Gradle文件 .
直到这里没有任何帮助我和Android Studio已经在我之前运行的所有应用程序中解决了这个问题 - 所以我知道 - 它与我的代码没有关系 .
现在我解决了它:
您需要重置Android Studio:只需转到C:\ Users \ yourusername \ androidStudio3.2(或类似)并删除此目录 .
这个人在老版本的视频中向您展示了如何做到这一点:https://www.youtube.com/watch?v=AwZEliSPGwU&t
我收到了这个错误 .
并且发现在启动器活动的清单文件中我没有将 action 和 category 放在intent过滤器中 .
action
category
错了一个:
<activity android:name=".VideoAdStarter" android:label="@string/app_name"> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </activity>
正确对象,真爱:
<activity android:name=".VideoAdStarter" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
如果您的应用程序没有活动(例如,只有服务),请将运行/调试配置“启动”选项更改为Nothing .
我这样解决了运行>>编辑配置>> Android应用程序>>在"Launch"编辑框中输入默认活动类的路径 .
我从一个演示应用程序开始并修改它 . 我将源代码中的java路径从com - > example - > foo更改为我自己的并编辑了清单;然而,Android Studio(0.8.7)非常困惑 .
我尝试了上面列出的所有内容,但没有一个适用于我 . 也许它甚至让事情变得更糟?
我的最终解决方案是在 .idea 子目录中编辑 <projectname>.iml ,方法是在Android Studio(又名文本编辑器)中打开它 .
.idea
<projectname>.iml
之前:
<content url="file://$MODULE_DIR$"> <sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" generated="true" /> </content>
我(重新)添加了src目录(第2行) . 后:
<content url="file://$MODULE_DIR$"> <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" generated="true" /> </content>
保存后,Android Studio重新加载并开始按预期运行 .
你的app有默认的启动活动吗?
可能这可能是你的错
Step 1 :选择“编辑配置”
Step 2 :观察此警告:未找到默认活动
Step 3 :选择默认活动
Step 3 :保存更改并完成
Good Luck
执行此操作的正确方法是将以下内容添加到清单文件:
<activity android:name="FULL_NAME_OF_YOUR_ACTIVITY" 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> </application>
无需使缓存无效 .
在运行/调试配置下的Android Studio中 - > Android应用程序 - >常规 - >活动 - >选择“不启动活动”选项 .
Android Manifest.xml设置如下的起始活动
我将我的Intent-filter改为
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
只需添加DEFAULT选项 . 我正在使用Process Phoenix库,它促使我定义默认意图 . 这个补充解决了我的问题 .
我的经验:确保你的所有java文件都已被识别,如果IDEA没有识别你的java文件,那么他就无法理解什么是“活动”的意思
祝好运 :)
30 回答
我在我的代码中发现了这个:
如果你仔细看,应该是
<activity android:name=".MainActivity">
.显然,我在某处重构了一个“活动”,它也改变了AndroidManifest中的名字 .
刚刚在android studio 2.1.2上遇到这个错误 . 通过将MAIN / LAUNCHER intent-filter添加到 flavour 清单中的默认活动来解决,尽管过滤器已经在默认清单中的默认活动中 . 它甚至在合并清单中,但工作室无法找到它,直到我在两个清单中重复过滤 .
将Android Studio从1.2.x更新为1.3后,我遇到了同样的问题,我尝试了所有建议,但没有任何效果 . 然后我这样做了:
转到运行/调试配置 . 选择提供错误的配置并将其删除 . 使用相同的名称和设置创建一个新的 . 之后,重新连接USB电缆并运行应用程序 .
这解决了我的问题 .
我最近遇到了类似的问题 . 问题出在activitymanifest xml文件中 . 请检查标语是否正确关闭 .
如果您在升级IntelliJ IDEA或Android Studio版本后或在生成新APK之后发现错误,则可能需要刷新IDE的缓存 .
使高速缓存/重新启动无效
之后,您的应用必须运行!
如果您正在使用小部件应用程序,此解决方案应该适合您:
转到
Edit Configuration
将
Launch Option
设为nothing
在我的情况下,我重构了一个名为"activity"的成员变量,我将其重命名为"context" ...我发现重构是在清单中的 activity 标签,我发现它们是 context 标签而不是......这真的很愚蠢来自Android Studio!
编辑androidmanifest.xml
我在Android Studio 3.3 Canary 3中遇到了同样的问题 . 来自Android Studio 3.0 stabile版本的项目首先正常工作,而不是在一些清理/重建之后,它开始显示No Default Activity错误 . 我尝试重新安装此Android版alpha版本:再次出错 . 但后来开始在旧的稳定的Android,并使用apk安装,这个apk工作正常 .
此外,我的项目是使用Instant App(基础,功能,即时,app子目录)创建的 . 我认为这个Android Studio在分成这个多个目录的Manifest.xml文件中存在一些问题 .
所以我已将设置更改为:
我不能评论为什么升级IntelliJ可能会导致这个问题因为我不使用它 .
但是,该错误:“未找到默认活动”似乎告诉您,您没有在AndroidManifest.xml中声明的活动,该活动被标记为主要活动,将在应用程序启动时启动 .
您应该至少有一个看起来像这样的活动:
如果您没有至少一个具有类似意图过滤器的活动,您很可能会看到此处包含的错误消息 .
您应该将该意图过滤器添加到您希望在启动应用程序时打开的Activity,这应该可以解决您的问题 .
我遇到了同样的问题 . 出于某些原因,android Studio将大多数XML文件中的所有
android:name
属性(包括清单)替换为Android Studio无法识别的android:subject
.如上图所示,IDE无法识别
android:subject
属性 . 因此,它将无法读取指定MainActivty的行 .解决方案只是将每个
android:subject
更改为android:name
,然后从Build菜单 - > Rebuild Project重建项目 . 重建项目时可能会遇到相同的问题,因此请执行与上面相同的操作 .尝试右键单击该项目并选择 Open Module Settings . 然后转到模块中的 Sources 选项卡,找到 src 文件夹,右键单击它并将其标记为 Sources (蓝色) .
EDIT: Android Studio的更高版本中没有“源”选项卡,但您可以编辑 build.gradle 文件:https://stackoverflow.com/a/22028681/1101730
Build -> Rebuild Project
File -> Invalidate Caches.. -> Invalidate and restart
这个对我有用 . 重建项目以确保项目中没有错误 . 然后我们可以使缓存无效 .
我发现这个博客在我的案例中确实解决了这个问题 . 事实证明你必须添加某种意图:
这绝对是直截了当的 . 参考:
https://www.aboutonline.info/2018/08/error-running-app-default-activity-not-found-on-android-with-kotlin.html
上面没有任何东西帮助我 . 过了一段时间后,我发现IDEA将动作名称改为大写 . 喜欢:
恢复正常后,IDEA会识别默认值活动:
有时为所有用户卸载应用程序会有所帮助 . 转到设置中的应用程序列表转到您的应用程序或滚动到列表的末尾,然后卸载它 . 希望这可以帮助
@TouchBoarder几乎拥有它 . 虽然选择“不启动活动”会导致无法启动 .
在Android Studio的运行/调试配置 - > Android应用程序 - >常规 - >活动 - >选择选项“启动:”
选择你的活动 . 这并不能完全解决预期的行为,而是正确地覆盖它 .
那我也得到了这个错误,
在我的情况下它是为了磨损模块..我不需要在那里的活动所以我所做的只是简单
去编辑配置 - >穿 - >启动选项 - >启动 - >没什么 .
应用更改 . 单击“确定” .
从清单文件中删除现有的默认活动代码 .
注意:不要忘记清理项目和同步Gradle文件 .
直到这里没有任何帮助我和Android Studio已经在我之前运行的所有应用程序中解决了这个问题 - 所以我知道 - 它与我的代码没有关系 .
现在我解决了它:
您需要重置Android Studio:只需转到C:\ Users \ yourusername \ androidStudio3.2(或类似)并删除此目录 .
这个人在老版本的视频中向您展示了如何做到这一点:https://www.youtube.com/watch?v=AwZEliSPGwU&t
我收到了这个错误 .
并且发现在启动器活动的清单文件中我没有将
action
和category
放在intent过滤器中 .错了一个:
正确对象,真爱:
如果您的应用程序没有活动(例如,只有服务),请将运行/调试配置“启动”选项更改为Nothing .
错误:找不到默认活动
我这样解决了
运行>>编辑配置>> Android应用程序>>在"Launch"编辑框中输入默认活动类的路径 .
我从一个演示应用程序开始并修改它 . 我将源代码中的java路径从com - > example - > foo更改为我自己的并编辑了清单;然而,Android Studio(0.8.7)非常困惑 .
我尝试了上面列出的所有内容,但没有一个适用于我 . 也许它甚至让事情变得更糟?
我的最终解决方案是在
.idea
子目录中编辑<projectname>.iml
,方法是在Android Studio(又名文本编辑器)中打开它 .之前:
我(重新)添加了src目录(第2行) . 后:
保存后,Android Studio重新加载并开始按预期运行 .
你的app有默认的启动活动吗?
可能这可能是你的错
Step 1 :选择“编辑配置”
Step 2 :观察此警告:未找到默认活动
Step 3 :选择默认活动
Step 3 :保存更改并完成
Good Luck
执行此操作的正确方法是将以下内容添加到清单文件:
这应该插入:
无需使缓存无效 .
在运行/调试配置下的Android Studio中 - > Android应用程序 - >常规 - >活动 - >选择“不启动活动”选项 .
Android Manifest.xml设置如下的起始活动
我将我的Intent-filter改为
只需添加DEFAULT选项 . 我正在使用Process Phoenix库,它促使我定义默认意图 . 这个补充解决了我的问题 .
我的经验:确保你的所有java文件都已被识别,如果IDEA没有识别你的java文件,那么他就无法理解什么是“活动”的意思
祝好运 :)