我把IntelliJ IDEA从12.0.4升级到12.10。

现在我的Android项目中的所有模块都给出了错误:

错误:没有找到默认活动

我恢复到12.0.4,一切都恢复正常了。

什么好主意吗?我认为这可能是一个丢失插件的问题。由于插件没有安装,它无法找到默认活动。另一个东西可能是本地配置,但我对此表示怀疑。我删除了配置文件夹来验证,这没有改变任何东西。


当前回答

我尝试了无效缓存和重新启动选项,没有运气。然后我核实了舱单。它正确地设置了主要的活动意图。

我在菜单文件→设置→构建、执行、部署→Gradle的全局Gradle设置下检查了“离线工作”。

我取消了它,修改了构造。gradle文件(项目)使用不同的gradle版本(com.android.tools.build:gradle:3.3.1)并保存它。这触发了Gradle同步。

同步之后,这个错误就消失了。我又可以调试了。

其他回答

TL; diana:

确保您不仅检查操作和类别名称,还检查路径。特别是如果你做了重构。

我的解决方案是仔细检查AndroidManifest文件。我做了一个重构,它不仅更新了意图过滤器,而且还更新了意图过滤器名称的路径:

<!-- Type and value were added to the 
     path here when I did the refactor -->
<action android:name="android.intent.type.MAIN"/>
<category android:name="android.intent.value.LAUNCHER"/>

它应该是:

<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

如果您在升级IntelliJ IDEA或Android Studio版本后,或者在生成新的APK文件后,看到该错误发生,您可能需要刷新IDE的缓存。

菜单文件→无效缓存和重启…

在Android Studio中运行/调试配置-> Android应用程序->通用->活动->选择“不启动活动”选项。

我将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库,它提示我定义一个默认意图。这就解决了我的问题。

在配置新项目时

公司名称应该以.app结尾。例如,它应该是android.example.com.app 它不应该是android.example.com。