我把IntelliJ IDEA从12.0.4升级到12.10。
现在我的Android项目中的所有模块都给出了错误:
错误:没有找到默认活动
我恢复到12.0.4,一切都恢复正常了。
什么好主意吗?我认为这可能是一个丢失插件的问题。由于插件没有安装,它无法找到默认活动。另一个东西可能是本地配置,但我对此表示怀疑。我删除了配置文件夹来验证,这没有改变任何东西。
我把IntelliJ IDEA从12.0.4升级到12.10。
现在我的Android项目中的所有模块都给出了错误:
错误:没有找到默认活动
我恢复到12.0.4,一切都恢复正常了。
什么好主意吗?我认为这可能是一个丢失插件的问题。由于插件没有安装,它无法找到默认活动。另一个东西可能是本地配置,但我对此表示怀疑。我删除了配置文件夹来验证,这没有改变任何东西。
当前回答
之前的答案都没帮到我。
试着去除
<?xml version="1.0" encoding="utf-8"?>
在你的AndroidManifest中。
然后菜单文件→同步项目与Gradle文件。
其他回答
用Gradle文件同步项目有时是有效的。
要解决这个整体问题,你应该:
退出Android Studio 进入USER文件夹→AndroidStudio→系统→缓存 删除该文件夹 启动Android Studio。
它将重新索引您的文件,这应该工作。
感谢kirtan403的类似问题。
我在我的代码中发现了这个:
<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”>。
显然,我在某处重构了一个“活动”,它也改变了AndroidManifest中的名称。
我也遇到过同样的问题。由于某些原因,Android Studio将大部分XML文件中的所有Android:name属性(包括manifest)替换为Android:subject (Android Studio无法识别)。
正如你在上图中看到的,IDE不识别android:subject属性。因此,它将无法读取指定mainactivity的行。
解决方案是简单地改变每个android:受制于android:name,然后从Build菜单中重建项目*→重建项目。在重新构建项目时,您可能会遇到相同的问题,因此执行与上面相同的操作。
我在Android Studio 3.3 Canary 3中也遇到了同样的问题。
来自Android Studio 3.0稳定版本的项目首先正常工作,但在一些清理/重建之后,它开始显示No Default Activity错误。
我尝试重新安装这个alpha版本的Android Studio:再次错误。但后来我在旧的稳定Android上启动了它,并使用APK安装,这个APK文件可以正常工作。
此外,我的项目是用Instant App (base, feature, Instant和App子目录)创建的。我认为这个Android Studio有一些问题,Manifest.xml文件分开到这个多个目录。
所以我在设置中把它改成了这样:
前面的答案对我没有任何帮助。过了一段时间,我发现IntelliJ 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>