我把IntelliJ IDEA从12.0.4升级到12.10。
现在我的Android项目中的所有模块都给出了错误:
错误:没有找到默认活动
我恢复到12.0.4,一切都恢复正常了。
什么好主意吗?我认为这可能是一个丢失插件的问题。由于插件没有安装,它无法找到默认活动。另一个东西可能是本地配置,但我对此表示怀疑。我删除了配置文件夹来验证,这没有改变任何东西。
我把IntelliJ IDEA从12.0.4升级到12.10。
现在我的Android项目中的所有模块都给出了错误:
错误:没有找到默认活动
我恢复到12.0.4,一切都恢复正常了。
什么好主意吗?我认为这可能是一个丢失插件的问题。由于插件没有安装,它无法找到默认活动。另一个东西可能是本地配置,但我对此表示怀疑。我删除了配置文件夹来验证,这没有改变任何东西。
当前回答
Android Studio 4.1解决了这个问题
其他回答
如果前面答案中的选项不起作用,请尝试删除.gradle文件夹。
我使用的是Android Studio 3.3.1。我所有的项目都很好,但它们突然都停止了工作,说没有活动。即使是全新的项目也出现了同样的错误。
在数小时使缓存无效后,试图修复清单文件。我注意到它与Android X库有一些关系,比如(androidx.core:core-ktx)。在一些项目中,仅仅更新库就可以解决这个问题,但真正有效的方法是删除.gradle文件夹。
我在我的代码中发现了这个:
<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中的名称。
我不能评论为什么IntelliJ IDEA的升级会导致这个问题,因为我没有使用它。
然而,这个错误:“Default Activity Not Found”似乎是在告诉你,你没有在文件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 4.1.2)如果项目创建为EmptyApplication,那么开发人员必须手动创建以下三个文件,以避免出现Default Activity Not Found错误:
文件AndroidManifest.xml
文件MainActivity.java
文件activity_main.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>
如果您在升级IntelliJ IDEA或Android Studio版本后,或者在生成新的APK文件后,看到该错误发生,您可能需要刷新IDE的缓存。
菜单文件→无效缓存和重启…