我把IntelliJ IDEA从12.0.4升级到12.10。

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

错误:没有找到默认活动

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

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


当前回答

自从Android Studio 3.5或3.6以来,我开始找不到默认活动,我厌倦了无效缓存和重新启动,重建项目等。

事实证明,我处理多模块和清单的方式是错误的。我有默认的活动的清单在库模块,但它应该已经在两个应用程序模块。

假设库模块 appmodule1 appmodule2

Remove HomeActivity from librarymodule Manifest whatsoever. Add: class AppModuleActivity1 : HomeActivity() to appmodule1 class AppModuleActivity2 : HomeActivity() to appmodule2 To appmodule1 Manifest inside application tag, I added: <activity android:name="com.app.name.AppModuleActivity1"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> Same about appmodule2 but change 2 for 1 in naming.

其他回答

有时会出现这种错误,因为Android Studio的错误行为,因为内部缓存和项目构建系统。即使我们已经为默认活动完美地设置了一切。

对于这样的问题,我找到了一个解决方案,它是为我工作。

步骤1。Android Studio→菜单文件→无效缓存,关闭Android Studio。

步骤2。进入路径C:\Users\USER.AndroidStudio3.2\system

步骤3。更改名称扩展为下面文件夹的.back

  Example: compiler should be *compiler.back*

编译器 compiler-server 转换 external-build_system 框架 gradle resource_folder_cache

步骤4:启动Android Studio并打开项目。

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

首先,确保清单中包含了默认活动。

例子:

<activity android:name=".DefaultActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

如果你已经尝试了所有的方法,但似乎都没有效果

从您的%Home%\删除缓存。Gradle \缓存和同步项目再次。

或者看看这个答案:

Android Studio显示错误的文件内容

自从Android Studio 3.5或3.6以来,我开始找不到默认活动,我厌倦了无效缓存和重新启动,重建项目等。

事实证明,我处理多模块和清单的方式是错误的。我有默认的活动的清单在库模块,但它应该已经在两个应用程序模块。

假设库模块 appmodule1 appmodule2

Remove HomeActivity from librarymodule Manifest whatsoever. Add: class AppModuleActivity1 : HomeActivity() to appmodule1 class AppModuleActivity2 : HomeActivity() to appmodule2 To appmodule1 Manifest inside application tag, I added: <activity android:name="com.app.name.AppModuleActivity1"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> Same about appmodule2 but change 2 for 1 in naming.

用Gradle文件同步项目有时是有效的。

要解决这个整体问题,你应该:

退出Android Studio 进入USER文件夹→AndroidStudio→系统→缓存 删除该文件夹 启动Android Studio。

它将重新索引您的文件,这应该工作。

感谢kirtan403的类似问题。