我将IntelliJ Idea从12.0.4升级到12.10。

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

错误:找不到默认活动

我恢复到12.0.4并一切都会再次生效。

有什么想法吗?我认为这可能是缺少插件的问题。由于未安装该插件,因此无法找到默认活动。另一件事可能是本地配置,但我对此表示怀疑。我删除了配置文件夹以进行验证,但没有做任何更改。

评论

你看过清单了吗?也许切换版本清除了它或什么? developer.android.com/guide/components/fundamentals.html

不...但是我让它可以与12.0.4一起使用,但是可以从头开始重新导入项目。

清单是关键,可能是名称错误或遗漏,或者名称空间问题

该项目的所有七个模块中的一个清单问题是12.0.4可以正确运行,但是12.10不能运行?

否,但是,例如,命名空间或项目布局中的更改可能与清单不同步

#1 楼

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

File -> Invalidate Caches / Restart...


评论


您也可以尝试在此处提交错误:youtrack.jetbrains.com/issues/IDEA我发现他们非常善于跟进我提交的错误。

– Sky Kelsey
13年4月5日,下午3:25

这在Android Studio中对我有用,但是在重新启动后,我还必须执行“工具”->“ Android”->“使用Gradle文件同步项目”。

–vaughandroid
14年8月13日在8:32

看看这个github.com/googlesamples/android-CommitContentSampleIME/issues/…

–忍者
18-10-11在12:32

没为我工作。我必须准备手动启动该应用程序。糟透了

– DavidH
18-10-30在10:55

有时会发生这种情况,但是问题出在其他地方,例如我的问题是minSdkVersion太低

–科奇奇
4月1日14:02



#2 楼

我无法评论为什么IntelliJ升级可能会导致此问题,因为我不使用它。

但是,该错误:“未找到默认活动”似乎告诉您您没有在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>


如果没有至少一个活动具有这样的意图过滤器,则很可能会看到此处包含的错误消息。

您应该在启动应用程序时将该意图过滤器添加到希望打开的活动中,这样可以解决您的问题。

评论


ant可以很好地构建它,IntelliJ 12.0.4也可以

– Saad Farooq
13年4月5日,下午3:22

我在Eclipse中启动了我的应用程序,是的,我有默认活动。我将我的应用程序导入到Android Studio中,直到有一天我添加了通知管理器和其他东西(也就是当我遇到此错误时),这很好。我做了File-> Invalidate cach-> Restart并修复了它。但是,该错误并非由您所说的缺少默认活动引起的。

– The_Martian
15年8月15日在20:55

也为我工作!但请注意:请用小写字母写“ android.intent.xxx”-我的错是Android Studio的完成建议使用大写字母(这花了我一个小时):-(

– Philipp P
2015年10月17日在8:14

对于那些刚接触Android的人,而您刚刚搞砸了Android Studio项目,这就是您想要的答案。可接受的答案是当升级为您造成麻烦时。

–汤姆·基德(Tom Kidd)
16 Mar 10 '16 at 17:10

我已经设置好了,我的项目已经运行了很多次,突然出错了。我不知道哪里错了。也许,这是AS的潜在错误。

– Licat Julius
18-10-26在0:58

#3 楼

您的应用具有默认的启动活动吗?

这可能是您的错误



步骤1:选择“编辑配置”



步骤2:注意此警告:未找到默认活动


步骤3:选择默认活动




步骤3:保存更改并完成



祝你好运



评论


好答案!如果应用程序中没有活动,这将有所帮助。 (仅服务)。您需要将“活动”更改为“不启动活动”

– Udi Reshef
16-09-22在11:40



这是唯一适用于没有活动的应用程序的答案。谢谢。

– sephiron
16-10-5在0:51

这对我有用!我实际上在清单中有一个默认活动,但是由于某些原因,Android Studio找不到该活动。

–ocramot
19年3月14日在18:11

我按照上述步骤操作,但现在虽然说“ MainManity”中存在活动“ MainActivity”未在AndroidManifest.xml中声明”

–远
19年6月24日在9:47

我选择了启动:“无”选项并为我工作:)

–安迪
6月29日18:48

#4 楼

如果您正在使用小部件应用程序,则此解决方案将为您工作:


转到Edit Configuration

Launch Option设置为nothing



评论


你太棒了!

–拉胡尔·辛格(Rahul Singh)
19年4月3日在13:37

你是救命恩人:D:D

– Sajib
7月28日7:08

这只是跳过问题,但不能解决问题。设置为空后,该应用程序不会在构建结束时运行

–狮子座疼痛
9月21日20:39

我做到了它没有纠正,但是显示了我可以纠正的错误。设置回默认活动后,它可以工作。 (我的应用程序不是小部件)

–托马斯
11月27日18:52

#5 楼

正确的方法是将以下内容添加到清单文件中:

<activity
    android:name="FULL_NAME_OF_YOUR_ACTIVITY"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

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


应将其插入以下之间:

<application> </application>


不需要使缓存无效。

评论


也为我工作!但请注意:请用小写字母写“ android.intent.xxx”-我的错是Android Studio的完成建议使用大写字母(这花了我一个小时):-(

– Philipp P
15-10-17在8:13



优点:“应在以下之间插入 ”。这是我的问题。非常感谢。

–丹尼斯·马修(Dennis Mathew)
17-4-3在8:41



重构代码时要非常小心。在我自己的情况下,我错误地将“类别”重构为“电话”,因此android.intent.category更改为android.intent.phone。

–肯尼·达比里(Kenny Dabiri)
17年10月4日在1:35

我使用了Android Studio的项目创建向导,但仍然必须手动执行此操作。我以为这是个错误是错误的吗?

– pdoherty926
18年6月18日在2:45

#6 楼

尝试右键单击该项目,然后选择“打开模块设置”。然后转到模块中的“源”选项卡,找到src文件夹,右键单击它并将其标记为“源”(蓝色)。

编辑:更高版本的Android Studio中没有“源”选项卡,但您可以改为编辑build.gradle文件:https://stackoverflow.com/a/22028681/1101730

评论


这帮助了我,我意识到intellij从Sources选项卡中的src中删除了很多源文件。我将包从项目中移出,然后又移回。这解决了我的问题

–杰西·布莱克(Jesse Black)
14年5月22日在21:52

我做了同样的事情,但是我右键单击了src文件夹,然后转到“将目录标记为...”,然后单击“源根目录”。 -Android Studio 0.8.6

–elliptic1
2014年9月20日下午5:26

像超级按钮一样工作,删除了当前根,并再次添加了src和gen的父文件夹

– Udi Oshi
2014年11月25日20:48

快速访问模块设置的方法是单击项目导航器,然后按F4键。

–提醒
2015年2月4日在23:23

不建议使用此选项,因为“打开模块设置”中不再有“源”选项卡。

–伙计
2015年8月7日在21:30



#7 楼

在Android Studio 4.0中,请将“启动”更改为“无”:

运行/调试配置-> Android应用->应用->常规->启动选项->启动:无



评论


将Android Studio更新到4.x,给了我这个问题,尝试了一些常见的东西。仅此有效!

–费陶
6月12日12:09

更改为Nothing并不是一个好的解决方案。确实可以,但是该应用程序只会安装在设备上,您必须手动运行它。在我这边,我只需要检查清单文件。我有两次宣布两次活动。现在,删除重复项后,我可以运行项目,而启动选项的“默认活动”没有问题。

–大卫·劳卡(David Rauca)
7月21日8:50



#8 楼

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

评论


当项目是服务或由于其他原因没有默认活动时,这是解决方案。

–阿隆·曼恩(Aharon Manne)
16-09-27在8:20

在Android Studio 2.2.3中;运行/调试配置-> Android应用-> myApp->常规->启动选项->启动:无

– liteflier
17年1月5日在16:25



#9 楼

上方没有任何帮助。一段时间后,我发现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>


#10 楼

首先,请确保您已在清单中包括默认活动。

示例:

<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 \ caches删除缓存并再次同步项目。

或检查此答案


https://stackoverflow.com/a/53476487/5507705


评论


Android Studio 3.2.1:File->用Gradle Files ::>同步项目:::必须在使缓存无效并在问题消失之前重新启动后执行此操作。

– Kreebog
19年1月10日,下午2:34

这对我有用。我认为导致此问题的原因是将我的主要活动移至根目录下游的其他目录。

– Shn_Android_Dev
19年4月16日在1:47

#11 楼

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>

如果不存在,则添加它
如果以上内容存在,但您仍会发现未找到默认活动。
请按照以下步骤操作:
1。单击编辑配置

2。单击编辑配置后,您会看到在默认活动中设置了启动选项


将其更改为空。


问题已解决!
快乐编码。

评论


谢谢它与android studio 4完全兼容

– Alirezaaraby
9月18日12:26

#12 楼

就我而言,File -> Invalidate Caches / Restart...并没有帮助

我的项目一切都很好,当然我的活动也有了下一个意图过滤器

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


真正帮助我的是删除Android / Gradle缓存文件夹(它们可以增长到10-30 GB)

转到C:\Users\YOUR_USER_WINDOWS_NAME并删除下一个文件夹


。 android
.AndroidStudio3.2
.gradle

(如果需要,可以在删除.AndroidStudio3.2之前保存一些Android配置)

您可以像这样创建bat文件CLEAR_CACHE.cmd即可删除没有回收站的文件夹

rmdir /S /Q .android
rmdir /S /Q .AndroidStudio3.2
rmdir /S /Q .gradle


它可以更快地工作,您也不必从回收站中删除它

ps将CLEAR_CACHE.cmd放入C:\Users\YOUR_USER_WINDOWS_NAME

删除Android Studio文件夹并再次下载也是一个好主意

#13 楼

此方法对我有效
单击应用程序图标,然后选择编辑配置。
在编辑配置中,选择指定的活动而不是默认活动。
然后在下面提供活动的路径。





最后与gradle文件同步。

#14 楼

退出Android Studio。

转到路径C:\Users\YOUR_WINDOW_USER_NAME\.AndroidStudio3.3\system

删除/ caches文件夹和/ tmp文件夹

评论


哦,天哪,当Android Studio中断其缓存并认为我的某些项目文件已损坏时,这只是一种对我有帮助的解决方案。太糟糕了,但是我很高兴在第二页上找到您的解决方案)

– Acuna
8月17日6:42

#15 楼

由于此问题是“清单页面”,用于处理大量清单问题,因此未找到“默认活动”,因此这是另一件事来检查您是否遇到此问题。
打开清单并切换到“合并清单”选项卡。
有时该问题与将项目中的所有清单合并为一个清单有关,这可能会导致错误并因此导致“未找到默认活动”。问题是,据我所知,此错误仅在“合并清单”选项卡中没有显示。
ES:在项目minSdkVersion 10中,将build.gradle文件中的实现版本降级:从25.4.0降级到25.3.1解决了此问题。
dependencies {
implementation 'com.android.support:appcompat-v7:25.3.1'   
implementation 'com.android.support:design:25.3.1'         
implementation 'com.android.support:mediarouter-v7:25.3.1' 



评论


希望我在发现相同内容之前花了四个小时才看到它。必须是最近的更改。

– Mike M
9月2日上午11:51

#16 楼

我将Intent过滤器更改为

<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库,它提示我定义默认意图。此添加解决了我的问题。

#17 楼

这是在我的PC意外重启后发生的。
奇怪的是,我没有进行任何更改,但仍然出现此错误。
以上都不对我有帮助。解决我问题的方法是这个。
步骤1:


步骤2:


步骤3:


如果仍不能解决问题,请尝试其他方法。
尝试1:
File -> Invalidate Caches / Restart...

尝试2:检查以下两行是否正确
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />

在manifest.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>

尝试3:

单击如图所示:



将打开“运行/调试配置”。




如果还是不能解决问题。
尝试4:

文件->导出到ZIP。


将其导入为新项目。

祝你好运。

评论


这是非常容易理解的,而且比公认的答案更有价值。

– Evgeniy Mishustin
8月26日8:22

我只是在合并清单中遇到了同样的问题-如果Android Studio高亮显示此选项卡以表明存在错误,那就太好了。 :-/

– Mike M
9月2日上午11:48

清单一修复了我的问题,它告诉我增加最小SDK版本,所以我修复了它

– Taha Gorme
12月6日9:57

#18 楼

我收到此错误。

,发现启动器活动的清单文件中没有将action
category放入意图过滤器中。

错误的一个:

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


#19 楼

@TouchBoarder几乎拥有它。尽管选择“不启动活动”不会导致任何启动。

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

选择您的活动。这不能完全解决预期的行为,而是可以正确地覆盖它。



#20 楼

如果您的应用程序没有活动(例如仅服务),请将运行/调试配置的“启动”选项更改为“无”。

#21 楼

我在我的代码中发现了这个问题:

<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中也更改了名称。

评论


在我的情况下,FilterClasses的重命名导致了标签:)

–伊曼纽尔
17年1月11日在12:29

重构代码时要非常小心。在我自己的情况下,我错误地将“类别”重构为“电话”,因此android.intent.category更改为android.intent.phone。

–肯尼·达比里(Kenny Dabiri)
17年10月4日在1:35

#22 楼

我发现这个博客确实解决了我的问题。事实证明,您必须添加某种意图:

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


绝对简单。参考:

https://www.aboutonline.info/2018/08/error-running-app-default-activity-not-found-on-android-with-kotlin.html

#23 楼

以上所有答案对我没有帮助。
尝试在AndroidManifest中删除此

<?xml version="1.0" encoding="utf-8"?>



然后:

File > Sync Project with Gradle Files


评论


我发现仅将项目与Gradle文件同步就可以很好地发挥作用。顺便说一句,我的错误从无处发生。

–本垒打
19年7月29日在8:53

#24 楼

在我的案例中,我重构了一个名为“ activity”的成员变量,将其重命名为“ context”……我发现重构是针对清单中的activity标签,而我却找到了context标签……这对Android Studio来说真的很愚蠢!

评论


这是来自Android Studio的错误,您说对了@tere bentikh

– mayank_droid
17年2月17日在9:29

#25 楼



Build -> Rebuild Project
File -> Invalidate Caches.. -> Invalidate and restart

它对我有用。
重建项目以确保项目中没有错误。然后我们可以使缓存无效。

#26 楼

我在Android Studio 3.3 Canary 3中有同样的问题。
来自Android Studio 3.0稳定版的项目首先可以正常运行,而不是在进行一些清理/重建后开始显示“没有默认活动”错误。我试图重新安装此Alpha版的Android Studio:再次出错。但随后在旧的稳定的Android中启动了它,并使用apk安装,此apk可以正常工作。

此外,我的项目是使用Instant App(基础,功能,Instant,应用子目录)创建的。我认为这个Android Studio在将Manifest.xml文件分离到多个目录中时遇到了一些问题。

所以我将设置更改为此:


#27 楼

使用Gradle Files同步项目有时可以工作,要解决此总问题,您应该


退出Android Studio
转到USER-> AndroidStudio-> system->缓存
删除该文件夹
启动Android Studio。

它将重新索引文件,并且可以正常工作

感谢类似问题的kirtan403。

#28 楼

自从Android Studio 3.5 or 3.6开始,我就开始使用Default Activity not found,我对Invalidating Caches & Restart,重建项目等感到厌倦。

结果是,我处理多模块和清单的方式是错误的。我仅在库模块中具有默认的活动清单,但应该在两个应用程序模块中都存在。

假设librarymodule appmodule1 appmodule2


HomeActivity中删除librarymodule任何清单都可以。
添加:

class AppModuleActivity1 : HomeActivity() to appmodule1
class AppModuleActivity2 : HomeActivity() to appmodule2



appmodule1标签内,我添加了:

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



application相同,但在命名中将2更改为1。


#29 楼

错误:找不到默认活动

我用这种方法解决了
运行>>编辑配置>> Android应用程序>>在“启动”中输入默认
活动类的路径盒子。

#30 楼

只是在android studio 2.1.2上遇到了此错误。
通过在味觉清单中的默认活动中添加MAIN / LAUNCHER intent-filter来解决,尽管过滤器已在默认清单中的默认活动中。它甚至在合并的清单中,但是在我在两个清单中重复过滤器之前,studio都找不到。