我把IntelliJ IDEA从12.0.4升级到12.10。

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

错误:没有找到默认活动

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

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


当前回答

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"/>

其他回答

我在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文件分开到这个多个目录。

所以我在设置中把它改成了这样:

好吧,我有时不理解Android Studio……

我遇到了同样的问题,并尝试了这里的答案,但无济于事。

然后我改变了一件事:我的intent-filter中的动作名称全部用大写。我把它改为小,只留下大写的单词MAIN,它解决了这个问题!多么荒谬!

这个解决方案100%有效

你一定看到了这个:

首先,打开舱单,检查是否有这个,

  <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>

如果不存在,添加它

如果出现上述情况,但仍然看不到默认活动,请执行以下步骤:

点击编辑配置 在单击edit configuration时,您将看到启动选项被设置为DEFAULT ACTIVITY 把它变成什么都没有。

问题解决了!

Note

请在清单文件的根文件中写明你应该有包名

        <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
        package="com.package.name">

TouchBoarder几乎做到了。尽管选择“不启动活动”会导致什么都不启动。

在Android Studio中运行/调试配置→Android应用程序→常规→活动→选择“启动”选项:

选择你的活动。这并没有完全修复预期的行为,而是正确地覆盖它。

在配置新项目时

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