我把IntelliJ IDEA从12.0.4升级到12.10。
现在我的Android项目中的所有模块都给出了错误:
错误:没有找到默认活动
我恢复到12.0.4,一切都恢复正常了。
什么好主意吗?我认为这可能是一个丢失插件的问题。由于插件没有安装,它无法找到默认活动。另一个东西可能是本地配置,但我对此表示怀疑。我删除了配置文件夹来验证,这没有改变任何东西。
我把IntelliJ IDEA从12.0.4升级到12.10。
现在我的Android项目中的所有模块都给出了错误:
错误:没有找到默认活动
我恢复到12.0.4,一切都恢复正常了。
什么好主意吗?我认为这可能是一个丢失插件的问题。由于插件没有安装,它无法找到默认活动。另一个东西可能是本地配置,但我对此表示怀疑。我删除了配置文件夹来验证,这没有改变任何东西。
我不能评论为什么IntelliJ IDEA的升级会导致这个问题,因为我没有使用它。
然而,这个错误:“Default Activity Not Found”似乎是在告诉你,你没有在文件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>
如果您至少没有一个带有这样意图过滤器的活动,那么您很可能会看到您在这里包含的错误消息。
您应该将意图过滤器添加到您希望在启动应用程序时打开的Activity中,这应该可以解决您的问题。
额外的细节
(Android Studio 4.1.2)如果项目创建为EmptyApplication,那么开发人员必须手动创建以下三个文件,以避免出现Default Activity Not Found错误:
文件AndroidManifest.xml
文件MainActivity.java
文件activity_main.xml
如果您在升级IntelliJ IDEA或Android Studio版本后,或者在生成新的APK文件后,看到该错误发生,您可能需要刷新IDE的缓存。
菜单文件→无效缓存和重启…
尝试右键单击项目并选择打开模块设置。然后转到模块中的Sources选项卡,找到src文件夹,右键单击并将其标记为Sources(蓝色)。
在Android Studio的后期版本中没有源代码选项卡,但您可以编辑构建。如何在Android Studio中添加一个链接源文件夹?
在我的案例中,AndroidManifest.xml中有一个打印错误,如下所示。删除应用程序标签上方的“o”字母就解决了这个问题。
显然,Android Studio不会检测AndroidMainfest.xml中的类型错误
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
o
<application android:name=".AppName"
android:allowBackup="false"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Light.NoTitleBar">
我从一个演示应用程序开始,并对其进行了修改。我改变java路径内的源从com -> example -> foo到我自己和编辑清单;然而,Android Studio(0.8.7)却非常困惑。
我尝试了上面列出的所有方法,但没有一种对我有效。也许它甚至让事情变得更糟?
我的最终解决方案是编辑<projectname>。在Android Studio(又名文本编辑器)中打开。idea子目录下的iml。
之前:
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" generated="true" />
</content>
我(重新)添加了src目录(第二行)。 后:
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" generated="true" />
</content>
保存后,Android Studio重新加载并开始正常运行。
正确的方法是将以下内容添加到Manifest文件中:
<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 Studio……
我遇到了同样的问题,并尝试了这里的答案,但无济于事。
然后我改变了一件事:我的intent-filter中的动作名称全部用大写。我把它改为小,只留下大写的单词MAIN,它解决了这个问题!多么荒谬!
从1.2更新Android Studio后。x到1.3我遇到了同样的问题,我尝试了所有的建议,但都不起作用。然后我这样做了:
进入运行/调试配置。选择给出错误的配置并删除它。创建一个具有相同名称和设置的新文件。之后,重新连接USB线并运行应用程序。
这为我解决了问题。
TouchBoarder几乎做到了。尽管选择“不启动活动”会导致什么都不启动。
在Android Studio中运行/调试配置→Android应用程序→常规→活动→选择“启动”选项:
选择你的活动。这并没有完全修复预期的行为,而是正确地覆盖它。
前面的答案对我没有任何帮助。过了一段时间,我发现IntelliJ 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>
如果你的应用有一个默认的启动活动,这可能是你的错误:
步骤1:选择“编辑配置”
步骤2:注意这个警告:未找到默认活动
第三步:选择一个默认活动
步骤3:保存更改并完成
祝你好运
我得到了错误:
错误:默认活动不发现后,我复制粘贴一个在线课程的代码。
错误出现在MainActivity.java文件的第一行。
而不是包com.example.myname。第一行是package com.example。android。Justjava。
从代码提供的学习,纠正它摆脱了错误。
我刚刚在Android Studio 2.1.2中遇到了这个错误。
我通过添加MAIN/LAUNCHER intent-filter到flavor manifest中的默认活动来解决这个问题,尽管filter已经在默认活动中了。
它甚至在合并的清单中,但Android Studio无法找到它,直到我在两个清单中复制了过滤器。
虽然很丑,但对我很管用:
我有这个错误消息,我的问题是在一个模块。我只是删除了应用程序标签完全从我的模块的清单和它工作。
(同时从模块库中删除ic_launcher。)
它是:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mymodule"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="23"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<activity
android:name="com.example.mymodule.MainActivity"
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>
</manifest>
Now:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mymodule"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="23"/>
</manifest>
我将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库,它提示我定义一个默认意图。这就解决了我的问题。
我在我的代码中发现了这个:
<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中的名称。
我也得到了这个错误,
错误:没有找到默认活动
嗯,在我的情况下,它是为磨损模块…我不需要一个活动,所以我只是做:
去编辑配置→磨损→启动选项→启动→无。 应用更改。单击OK。 从清单文件中删除默认活动的现有代码。
注意:不要忘记清理项目和同步Gradle文件。
在Android Manifest.xml中,像下面这样设置启动活动:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
在我的例子中,我重构了一个名为“activity”的成员变量。我把它重命名为“context”…
我发现重构是对清单中的活动标记进行的,我发现它们是上下文标记……这是非常愚蠢的Android Studio方面!
我也遇到过同样的问题。由于某些原因,Android Studio将大部分XML文件中的所有Android:name属性(包括manifest)替换为Android:subject (Android Studio无法识别)。
正如你在上图中看到的,IDE不识别android:subject属性。因此,它将无法读取指定mainactivity的行。
解决方案是简单地改变每个android:受制于android:name,然后从Build菜单中重建项目*→重建项目。在重新构建项目时,您可能会遇到相同的问题,因此执行与上面相同的操作。
检查舱单上的所有行。
在我的例子中,我犯了这样的错误:
android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen"
LogCat里什么都没有。
我得到了这个错误,试图运行一个应用程序,没有一个活动(这是一个androidTest项目)。因此,我只需右键单击测试项目,并从上下文菜单中选择Run或Debug。
我得到了这个错误。
并且发现在清单文件中,在启动器活动我没有放动作和 类别在意图过滤器。
错误的答案:
<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 3.0.1遇到这个问题,这是由明显的合并失败引起的。由于某种原因,我在消息输出中没有得到任何错误消息。我必须检查合并清单(app→清单→*AndroidManifest.xml,然后是“合并清单”选项卡)。
在底部有一个错误,指示在构建中添加的最新库。gradle文件,有一个依赖于其他一些库,其minSdk高于我的应用程序minSdk。解决方案就在这条信息里,就是添加
<uses-sdk tools:overrideLibrary="timber.log"/>
AndroidManifest.xml。实际上,这个库(piwik 1.0.2)在其manifest中已经有了这个overrideLibrary。
奇怪的是,其他团队成员并没有遇到这个问题。
编辑文件androidmanifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.java2">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivityName">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
我在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文件分开到这个多个目录。
所以我在设置中把它改成了这样:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
只需在<application>标签的清单文件中添加这个。只需将MainActivity替换为默认activity, android.intent.action.youractivity就可以工作了。
如果您已经有<intent-filter>标记,请确保您正确地关闭了所有标记。
我的错误是我用</>而不是</activity>关闭了<activity>标签。
之前的回答对我没有任何帮助,Android Studio在我之前运行的所有应用程序中都出现了这个问题——所以我知道——这与我的代码无关。
现在我解出来了:
你需要重置Android Studio: 只需转到C:\Users\yourusername\androidStudio3.2(或类似目录)并删除此目录。
这个家伙在他的旧版本的视频中向你展示了如何做到这一点:
如何将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"/>
去建造。Gradle(项目:xyz)
buildscript {
repositories {
jcenter()
google()
}
allprojects {
repositories {
jcenter()
google()
}
// Just place 'google()' to the top of 'jcenter()'
buildscript {
repositories {
google()
jcenter()
}
allprojects {
repositories {
google()
jcenter()
// enter code here
}
}
它非常适合我。
在我的情况下,菜单文件→无效缓存/重新启动…没有帮助。
我的项目一切正常,当然我的活动有以下意图过滤器:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
真正帮助我的是删除Android/Gradle缓存文件夹(它们可以增长到10- 30gb)。
进入C:\Users\YOUR_USER_WINDOWS_NAME并删除以下文件夹
.android .AndroidStudio3.2 .gradle
(如果你想删除它,你可以在删除它之前保存一些Android配置。androidstudio3.2。)
有时会出现这种错误,因为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并打开项目。
这个方法对我有用。点击应用程序图标,然后选择编辑配置。
在edit-configuration中,选择指定的活动而不是默认活动。 然后在下面给出活动的路径。
最后,与Gradle文件同步。
首先,确保清单中包含了默认活动。
例子:
<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显示错误的文件内容
之前的答案都没帮到我。
试着去除
<?xml version="1.0" encoding="utf-8"?>
在你的AndroidManifest中。
然后菜单文件→同步项目与Gradle文件。
如果前面答案中的选项不起作用,请尝试删除.gradle文件夹。
我使用的是Android Studio 3.3.1。我所有的项目都很好,但它们突然都停止了工作,说没有活动。即使是全新的项目也出现了同样的错误。
在数小时使缓存无效后,试图修复清单文件。我注意到它与Android X库有一些关系,比如(androidx.core:core-ktx)。在一些项目中,仅仅更新库就可以解决这个问题,但真正有效的方法是删除.gradle文件夹。
我尝试了无效缓存和重新启动选项,没有运气。然后我核实了舱单。它正确地设置了主要的活动意图。
我在菜单文件→设置→构建、执行、部署→Gradle的全局Gradle设置下检查了“离线工作”。
我取消了它,修改了构造。gradle文件(项目)使用不同的gradle版本(com.android.tools.build:gradle:3.3.1)并保存它。这触发了Gradle同步。
同步之后,这个错误就消失了。我又可以调试了。
我有这个问题两天了。我尝试了所有可能的解决办法,但都没用。最后,我找到了一个解决方案。
以下是你需要做的:
关闭Android Studio 转到c:\ users \ username将build-cache文件夹重命名为build-cache.bak 进入C:\Users\UserName.AndroidStudio3.3\system并重命名这些文件夹 缓存到cache .bak 编译-server到编译-server.bak 把蝙蝠 转换到Conversion .bak External_build_system到External_build_system .bak Frameworks到Frameworks .bak Gradle到Gradle .bak Resource_folder_cache到Resource_folder_cache .bak 打开Android Studio,再次打开你的项目。
退出Android Studio。
进入路径C:\Users\YOUR_WINDOW_USER_NAME.AndroidStudio3.3\system
删除“/ cached”文件夹和“/tmp”文件夹。
用Gradle文件同步项目有时是有效的。
要解决这个整体问题,你应该:
退出Android Studio 进入USER文件夹→AndroidStudio→系统→缓存 删除该文件夹 启动Android Studio。
它将重新索引您的文件,这应该工作。
感谢kirtan403的类似问题。
对我来说,这个问题的发生是因为其他原因。所以即使它有超过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会给出这个错误。
没有一个答案对我有用。错误信息说:
无法从../path/读取清单到/the/apk 没有发现默认活动
这个错误告诉我,Android Studio正在读取以前构建的APK文件。因此,我做了。/gradlew清洁来摆脱文件夹,这为我解决了问题。
自从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 4.0中,请将Launch更改为Nothing:
运行/调试配置→Android应用程序→应用程序→常规→启动选项→设置启动为“无”。
我在升级到Android Studio 4.0后就遇到了这种情况。
我试图使缓存无效,删除并再次创建Android应用程序配置,选择一个特定的启动活动,但我总是得到错误说明,该活动没有在AndroidManifest.xml文件中定义,但当然它是。
对我来说有用的是进入运行/调试配置(在这里你定义了启动选项),删除对话框底部的“在启动前”中的“Gradle-aware Make”。我成功地运行了应用程序,然后我又添加了“Gradle-aware Make”,一切都正常工作。
我知道这说不通。但我就是这么做的。
由于这个问题是关于清单的大量问题的“着陆页”,导致没有发现Default Activity,这里还有另一件事要检查是否有此问题。
打开清单并切换到合并清单选项卡。
有时问题与将项目中的所有清单合并为一个有关,这可能导致错误,因此“未找到默认活动”。问题是,据我所知,除了这个合并清单选项卡,这个错误没有显示在任何地方。
例如:在项目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'
我在不同的场景中得到了相同/类似的错误,错误:默认活动未找到,并且无法运行项目。
我发现我的项目有minSdkVersion=16。但是,其中一个包需要minSdkVersion >= 21。我更新了依赖项并重新构建。然后我又能运行这个项目了。
我使用Android Studio 4.0.1
这仍然发生在Android Studio 4.0,所以我必须删除以下文件夹来解决这个问题:
C:\Users\ my_user_name.AndroidStudio4.0 \ system \缓存
这个解决方案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">
这是在我的电脑意外重启后发生的。奇怪的是,我没有做任何修改,仍然得到这个错误。
以上这些对我都没有帮助。解决我问题的,是这个。
步骤1:
步骤2:
步骤3:
如果这不能解决问题,再试试别的办法。
试1:
菜单文件→无效缓存/重启…
试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。
and
将其作为一个新项目导入。
我是如何解决这个问题的:我没有与意图启动器声明相关的问题,我甚至尝试手动声明活动,但它仍然不起作用
我还清除了缓存和临时文件夹,但都不起作用。
因为我有几个活动,似乎其中一个活动,我从存储库中有重复的声明:
我的问题是:
在我的应用程序模块清单,我必须替换另一个依赖模块清单标签。
我在应用程序标签下添加了下面的代码,它为我工作:
tools:replace="android:allowBackup, android:usesCleartextTraffic"
对你来说,这可能是由于一些其他性质。您还必须重写它们。
添加包= " your.package。Path解决了这个问题。我不知道为什么。我必须创建一个新的示例flutter项目,并将配置文件与我的配置文件进行比较才能找到这一点。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.abc.app">...</manifest>