我把IntelliJ IDEA从12.0.4升级到12.10。
现在我的Android项目中的所有模块都给出了错误:
错误:默认活动未找到
我恢复到12.0.4,一切都恢复正常了。
什么好主意吗?我认为这可能是一个丢失插件的问题。由于插件没有安装,它无法找到默认活动。另一个东西可能是本地配置,但我对此表示怀疑。我删除了配置文件夹来验证,这没有改变任何东西。
我不能评论为什么IntelliJ IDEA的升级会导致这个问题,因为我没有使用它。
然而,该错误:“默认活动未找到”;似乎在告诉您,您没有在文件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,那么开发人员必须手动创建以下三个文件,以避免未找到默认活动错误:
如果你在升级IntelliJ IDEA或Android Studio版本后,或者在生成后一个新的APK文件后,你可能需要刷新IDE的缓存。
菜单文件→缓存失效并重新启动…
尝试右击项目并选择打开模块设置 .。然后转到模块中的<强> < /源强>选项卡,找到<强> src < / >强文件夹,右键单击并将其标记为<强> < /源强>(蓝色)。
在Android Studio的后期版本中没有源代码选项卡,但是你可以编辑< >强build.gradle < / >强文件:如何在Android Studio中添加链接源文件夹?< / >
在我的例子中,AndroidManifest.xml中有一个拼写错误,如下所示。去掉"应用程序标签上方的字母解决了这个问题。
显然,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)却非常困惑。
我尝试了上面列出的所有方法,但没有一种对我有效。也许它甚至让事情变得更糟?
我的最终解决方案是在Android Studio(又名文本编辑器)中打开.idea子目录中编辑<projectname>.iml。
.idea
<projectname>.iml
之前:
<content url="file://$MODULE_DIR$"> <sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" generated="true" /> </content>
<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中运行/调试配置-> Android应用程序->通用->活动->选择“不启动活动”选项。
在配置新项目时
公司名称应该以.app结尾。例如,它应该是android.example.com.app 它不应该是android.example.com。
好吧,我有时不理解Android Studio……
我遇到了同样的问题,并尝试了这里的答案,但无济于事。
然后我改变了一件事:我的intent-filter中的动作名称全部用大写。我把它改为小,只留下大写的单词MAIN,它解决了这个问题!多么荒谬!
从1.2更新Android Studio后。x到1.3我遇到了同样的问题,我尝试了所有的建议,但都不起作用。然后我这样做了:
进入运行/调试配置。选择给出错误的配置并删除它。创建一个具有相同名称和设置的新文件。之后,重新连接USB线并运行应用程序。
这为我解决了问题。
错误:没有找到默认活动
我是这样解决的:
运行→编辑配置→Android应用程序→*在“启动”中输入默认活动类的路径;编辑框。
# EYZ0。虽然选择“不启动活动”;结果什么都没有启动。
在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:选择一个默认活动
步骤3:保存您的更改并完成
祝你好运
使缓存失效/重新启动
之后,你的应用程序必须运行!
我得到了错误:
错误:默认活动不发现后,我复制粘贴一个在线课程的代码。
错误出现在MainActivity.java文件的第一行。
第一行不是包com.example.myname.justjava,而是包com.example.android.justjava。
从代码提供的学习,纠正它摆脱了错误。
我刚刚在Android Studio 2.1.2中遇到了这个错误。
我通过添加主要/发射器意图过滤器到< >强味< / >强清单中的默认活动来解决,尽管过滤器已经在默认清单中的默认活动中。
它甚至在合并的清单中,但Android Studio无法找到它,直到我在两个清单中复制了过滤器。
我的经验:
确保所有Java文件都已标识。如果IntelliJ IDEA不能识别您的Java文件,它就不能理解“;活动”;的意思。
虽然很丑,但对我很管用:
我有这个错误消息,我的问题是在一个模块。我只是删除了应用程序标签完全从我的模块的清单和它工作。
(同时从模块库中删除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>
现在:
<?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>
如果您的应用程序没有活动(例如,只有一个服务),请将运行/调试配置“启动”选项更改为Nothing。
我将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>
只需添加默认的选项。我正在使用过程凤凰库,它提示我定义一个默认意图。这就解决了我的问题。
我在我的代码中发现了这个:
<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">。
<activity android:name=".MainActivity">
显然,我在某处重构了一个“活动”,它也改变了AndroidManifest中的名称。
我也得到了这个错误,
嗯,在我的情况下,它是为磨损模块…我不需要一个活动,所以我只是做:
注意:不要忘记清洁项目和同步Gradle文件。
在Android Manifest.xml中,像下面这样设置启动活动:
在我的例子中,我重构了一个名为“activity”的成员变量。我把它重命名为“context”…
我发现重构是对清单中的活动标签做的,我发现它们是上下文标签…这是非常愚蠢的Android Studio方面!
如果你正在开发一个小部件应用程序,这个解决方案应该适合你:
You 可能 be missing <intent_filter>属性。确保在清单文件中包含此活动。
我最近也遇到了类似的问题。问题在于activitymanifest XML文件。
请检查标语是否正确关闭。
我也遇到过同样的问题。由于某种原因,Android Studio将大多数XML文件中的所有android:name属性(包括清单)替换为android:subject (Android Studio无法识别)。
android:name
android:subject
如上图所示,IDE无法识别android:subject属性。因此,它将无法读取指定mainactivity的行。
解决方案是简单地改变每个android:subject到android:name和重建项目从构建菜单*→重建项目。在重新构建项目时,您可能会遇到相同的问题,因此执行与上面相同的操作。
检查舱单上的所有行。
在我的例子中,我犯了这样的错误:
android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen"
LogCat号里面什么都没有。
我得到了这个错误,试图运行一个应用程序,没有一个活动(这是一个androidTest项目)。因此,我只需右键单击测试项目,并从上下文菜单中选择Run或Debug。
我得到了这个错误。
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>
我一直在Android Studio 3.0.1遇到这个问题,这是由明显的合并失败引起的。由于某种原因,我在消息输出中没有得到任何错误消息。我必须检查合并清单(app→体现→*AndroidManifest.xml,然后是“合并清单”选项卡)。
在底部有一个错误,表明在build.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 金丝雀 3中有同样的问题。
来自Android Studio 3.0稳定版本的项目首先可以正常工作,但在一些清理/重建之后,它开始显示无默认活动错误。
我尝试重新安装这个alpha版本的Android Studio:再次错误。但后来我在旧的稳定Android上启动了它,并使用APK安装,这个APK文件可以正常工作。
此外,我的项目是用即时应用程序(基础、功能、即时和应用程序子目录)创建的。我认为这个Android工作室有一些问题,Manifest.xml文件分开到这个多个目录。
所以我在设置中把它改成了这样:
检查AndroidManifest.xml文件中的应用程序标记中是否存在活动标记。
<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
只需将此添加到您的manifest文件中的<应用程序>标签。只需将MainActivity替换为默认活动,android.intent.action.youractivity就可以工作了。
MainActivity
android.intent.action.youractivity
如果您已经有了<intent-filter>标记,请确保正确地关闭了所有标记。
<intent-filter>
我的错误是我用</>而不是</activity>关闭了<activity>标记。
</>
</activity>
<activity>
之前的回答对我没有任何帮助,Android Studio在我之前运行的所有应用程序中都出现了这个问题——所以我知道——这与我的代码无关。
# EYZ0:
这个家伙在他的旧版本的视频中向你展示了如何做到这一点:
如何将Android Studio重置为默认设置?< / >
TL;博士:
确保您不仅检查了action和category名称,而且还检查了路径。特别是如果你做了重构。
我的解决方案是仔细检查AndroidManifest文件。我做了一个重构,它不仅更新了意图过滤器,而且还更新了意图过滤器名称的路径:
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"/>
转到build.gradle(项目:xyz)
build.gradle
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 } }
它非常适合我。
在我的例子中,菜单文件→使缓存失效/重新启动…没有帮助。
我的项目一切正常,当然我的活动有以下意图过滤器:
真正帮助我的是删除Android/Gradle缓存文件夹(它们可以增长到10- 30gb)。
转到C:\Users\YOUR_USER_WINDOWS_NAME并删除以下文件夹
C:\Users\YOUR_USER_WINDOWS_NAME
(你可以在删除.AndroidStudio3.2之前保存一些Android配置。)
.AndroidStudio3.2
只是清理和重建。问题就会消失。
有时会出现这种错误,因为Android Studio的错误行为,因为内部缓存和项目构建系统。即使我们已经为默认活动完美地设置了一切。
对于这样的问题,我找到了一个解决方案,它是为我工作。
步骤1。 Android Studio→菜单文件→无效的缓存,关闭Android Studio。
进入路径C:\Users\ USER.AndroidStudio3.2 \系统
将下面文件夹的名称改为扩展名.back
Example: compiler should be *compiler.back*
启动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>
如果你已经尝试了所有的方法,但似乎都没有效果
或者看看这个答案:
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设置下的“离线工作”。
我检查它,修改了build.gradle文件(项目)使用不同的Gradle版本(com.android.tools.build: Gradle:3.3.1)并保存它。这触发了Gradle同步。
同步之后,这个错误就消失了。我又可以调试了。
我有这个问题两天了。我尝试了所有可能的解决办法,但都没用。最后,我找到了一个解决方案。
以下是你需要做的:
关闭Android Studio
进入c:\ users \ username将build-cache文件夹重命名为build-cache.bak
缓存到cache .bak
compile-server to compile-server.bak
转换到conversion.bak
external_build_system到external_build_system.bak
框架到frameworks.bak
gradle to gradle.bak
resource_folder_cache到resource_folder_cache.bak
退出Android Studio。
进入路径C:\Users\ YOUR_WINDOW_USER_NAME.AndroidStudio3.3 \系统
删除/缓存文件夹和/ tmp文件夹。
用Gradle文件同步项目有时有用。
要解决这个整体问题,你应该:
它将重新索引您的文件,这应该工作。
感谢Kirtan403从类似的问题。
这个解决方案应该适合你:
进入“编辑配置”。
选择活动,什么都不选择并应用。
对我来说,这个问题的发生是因为其他原因。所以即使它有超过30个答案,我仍然觉得我的解决方案可能会帮助到一些人。
我的styles.xml看起来是这样的:
styles.xml
<style name="AppTheme" parent="..."> .... </style> <style name="AppTheme.NoActionBar" parent="..."> .... </style>
我的AndroidManifest.xml是这样的:
AndroidManifest.xml
<application android:label="@string/app_name" android:theme="@style/AppTheme"> .... </application>
出于某种原因,我决定让我的主题没有ActionBar,所以我继续下去,从我的styles.xml中删除了它。这是更新后的版本:
ActionBar
<style name="AppTheme.NoActionBar" parent="..."> .... </style>
除此之外,我还必须更新清单文件中的主题,但我忘记了这一点。所以当我运行应用程序,我得到的错误说:
经过长时间的挣扎,我发现了问题,并相应地修改了我的载货单:
<application android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar"> .... </application>
如果你有一个错误的AndroidManifest.xml可能导致合并失败,那么AS会给出这个错误。
你可以让Android Studio不抱怨去&;编辑配置&;菜单(点击“shift”;三次,然后输入“编辑配置”)。然后更改启动选项→发射到“虚无”;。
没有一个答案对我有用。错误信息说:
无法从../path/读取清单到/the/apk 没有发现默认活动
无法从../path/读取清单到/the/apk
没有发现默认活动
这个错误告诉我,Android Studio正在读取以前构建的APK文件。因此,我使用./gradlew clean来摆脱文件夹,这为我解决了问题。
./gradlew clean
自从Android Studio 3.5或3.6开始,我开始得到未找到默认活动,我厌倦了使缓存无效重新启动,重建项目等。
事实证明,我处理多模块和清单的方式是错误的。我有默认的活动的清单在库模块,但它应该已经在两个应用程序模块。
假设librarymodule appmodule1 appmodule2
librarymodule
appmodule1
appmodule2
HomeActivity
class AppModuleActivity1 : HomeActivity() to appmodule1 class AppModuleActivity2 : HomeActivity() to appmodule2
application
<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>
在Android Studio 4.0中,请将发射改为没有什么:
运行/调试配置→安卓应用→应用程序→一般→启动选项→设置发射为没有什么。
使用菜单文件→使缓存失效/重新启动…
然后重启机器(PC,笔记本电脑等)
我在升级到Android Studio 4.0后就遇到了这种情况。
我试图使缓存无效,删除并再次创建Android应用程序配置,选择一个特定的启动活动,但我总是得到错误,说明活动没有在AndroidManifest.xml文件中定义,但当然它是。
对我来说有用的是转到运行/调试配置(在这里你定义了启动选项),删除“Gradle-aware Make"在对话框底部的“Before launch”。我成功地运行了应用程序,然后我添加了“Gradle-aware Make"一切都恢复正常了。
我知道这说不通。但我就是这么做的。
由于这个问题是一个“登陆页”;对于清单的过多问题,导致没有发现默认活动,这里是另一件事情,以检查您是否有此问题。
打开清单并切换到合并后的清单选项卡。
有时问题与将项目中的所有清单合并为一个有关,这可能导致错误,因此“默认活动未找到”。问题是,据我所知,除了合并后的清单选项卡,这个错误没有显示在任何地方。
例如:在minSdkVersion 10项目中,降低build.gradle文件中的实现版本:从25.4.0到25.3.1解决这个问题。
minSdkVersion 10
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。我更新了依赖项并重新构建。然后我又能运行这个项目了。
minSdkVersion=16
minSdkVersion >= 21
我使用Android Studio 4.0.1
这仍然发生在Android Studio 4.0,所以我必须删除以下文件夹来解决这个问题:
C:\Users\ my_user_name.AndroidStudio4.0 \ system \缓存
在我的案例中发生了这种情况,因为有一个明显的合并错误,我试图运行应用程序。
通过运行构建→使项目查看具体的错误。
我也面临着同样的问题。在我的例子中,我不止一次地声明了一个活动。删除重复的活动后,错误得到解决。
这个解决方案100%有效
你一定看到了这个:
首先,打开舱单,检查是否有这个,
如果不存在,添加它
如果出现上述情况,但仍然看不到默认活动,请执行以下步骤:
单击编辑配置
问题解决了!
请注意
请在清单文件的根文件中写明你应该有包名
<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的启动器活动声明中。
试3:
单击,如图所示:
运行/调试配置打开。
如果这也无济于事:
尝试4:
而且
转到清单文件。然后合并清单文件,看到一个错误,并解决清单问题。
清理项目并运行。
我是如何解决这个问题的:我没有与意图启动器声明相关的问题,我甚至尝试手动声明活动,但它仍然不起作用
我还清除了缓存和临时文件夹,但都不起作用。
因为我有几个活动,似乎其中一个活动,我从存储库中有重复的声明:
Android Studio 4.1解决了这个问题
我的问题是:
在我的应用程序模块清单,我必须替换另一个依赖模块清单标签。
我在应用程序标签下添加了下面的代码,它为我工作:
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>