我把IntelliJ IDEA从12.0.4升级到12.10。

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

错误:没有找到默认活动

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

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


当前回答

我一直在Android Studio 3.0.1遇到这个问题,这是由明显的合并失败引起的。由于某种原因,我在消息输出中没有得到任何错误消息。我必须检查合并清单(app→清单→*AndroidManifest.xml,然后是“合并清单”选项卡)。

在底部有一个错误,指示在构建中添加的最新库。gradle文件,有一个依赖于其他一些库,其minSdk高于我的应用程序minSdk。解决方案就在这条信息里,就是添加

<uses-sdk tools:overrideLibrary="timber.log"/>

AndroidManifest.xml。实际上,这个库(piwik 1.0.2)在其manifest中已经有了这个overrideLibrary。

奇怪的是,其他团队成员并没有遇到这个问题。

其他回答

对我来说,这个问题的发生是因为其他原因。所以即使它有超过30个答案,我仍然觉得我的解决方案可能会帮助到一些人。

我的styles.xml看起来是这样的:

<style name="AppTheme" parent="...">
    ....
</style>

<style name="AppTheme.NoActionBar" parent="...">
    ....
</style>

我的androidmanifest。xml是这样的:

<application
    android:label="@string/app_name"
    android:theme="@style/AppTheme">
    ....
</application>

出于某种原因,我决定让我的主题没有ActionBar,所以我继续下去,从我的styles.xml中删除了它。这是更新后的版本:

<style name="AppTheme.NoActionBar" parent="...">
    ....
</style>

除此之外,我还必须更新清单文件中的主题,但我忘记了这一点。所以当我运行应用程序,我得到的错误说:

错误:没有找到默认活动

经过长时间的挣扎,我发现了问题,并相应地修改了我的载货单:

<application
    android:label="@string/app_name"
    android:theme="@style/AppTheme.NoActionBar">
    ....
</application>

结论:

如果你有一个错误的AndroidManifest.xml可能导致清单合并失败,那么AS会给出这个错误。

你可能会遗漏<intent_filter>属性。确保在清单文件中包含此活动。

我得到了这个错误。

并且发现在清单文件中,在启动器活动我没有放动作和 类别在意图过滤器。

错误的答案:

<activity
android:name=".VideoAdStarter"
android:label="@string/app_name">

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

</activity>

正确答案:

<activity
android:name=".VideoAdStarter"
android:label="@string/app_name">

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

</activity>

菜单构建→重建项目 菜单文件→无效缓存…→无效并重新启动

这对我很管用。

重新构建项目以确保项目中没有任何错误。然后我们可以使缓存失效。

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

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

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