首页 文章

错误:找不到默认活动

提问于
浏览
283

我将IntelliJ Idea 12.0.4升级到12.10 .

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

Error: 找不到默认活动

我恢复到12.0.4并且它有效 .

有任何想法吗 ??我认为它可能与一些未安装的插件有关,因为唯一的其他东西可能是本地配置,但我删除了配置文件夹以确认,并没有改变任何东西 .

30 回答

  • 43

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

    <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中的名字 .

  • 2

    刚刚在android studio 2.1.2上遇到这个错误 . 通过将MAIN / LAUNCHER intent-filter添加到 flavour 清单中的默认活动来解决,尽管过滤器已经在默认清单中的默认活动中 . 它甚至在合并清单中,但工作室无法找到它,直到我在两个清单中重复过滤 .

  • 46

    将Android Studio从1.2.x更新为1.3后,我遇到了同样的问题,我尝试了所有建议,但没有任何效果 . 然后我这样做了:

    转到运行/调试配置 . 选择提供错误的配置并将其删除 . 使用相同的名称和设置创建一个新的 . 之后,重新连接USB电缆并运行应用程序 .

    这解决了我的问题 .

  • 16

    我最近遇到了类似的问题 . 问题出在activitymanifest xml文件中 . 请检查标语是否正确关闭 .

  • 4

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

    File -> Invalidate Caches / Restart...
    
  • 3

    使高速缓存/重新启动无效



    之后,您的应用必须运行!

  • 1

    如果您正在使用小部件应用程序,此解决方案应该适合您:

    • 转到 Edit Configuration

    • Launch Option 设为 nothing

  • 20

    在我的情况下,我重构了一个名为"activity"的成员变量,我将其重命名为"context" ...我发现重构是在清单中的 activity 标签,我发现它们是 context 标签而不是......这真的很愚蠢来自Android Studio!

  • 2

    编辑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>
    
  • 1

    我在Android Studio 3.3 Canary 3中遇到了同样的问题 . 来自Android Studio 3.0 stabile版本的项目首先正常工作,而不是在一些清理/重建之后,它开始显示No Default Activity错误 . 我尝试重新安装此Android版alpha版本:再次出错 . 但后来开始在旧的稳定的Android,并使用apk安装,这个apk工作正常 .

    此外,我的项目是使用Instant App(基础,功能,即时,app子目录)创建的 . 我认为这个Android Studio在分成这个多个目录的Manifest.xml文件中存在一些问题 .

    所以我已将设置更改为:

  • 58

    我不能评论为什么升级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>
    

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

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

  • 2

    我遇到了同样的问题 . 出于某些原因,android Studio将大多数XML文件中的所有 android:name 属性(包括清单)替换为Android Studio无法识别的 android:subject .

    如上图所示,IDE无法识别 android:subject 属性 . 因此,它将无法读取指定MainActivty的行 .

    解决方案只是将每个 android:subject 更改为 android:name ,然后从Build菜单 - > Rebuild Project重建项目 . 重建项目时可能会遇到相同的问题,因此请执行与上面相同的操作 .

  • 2

    尝试右键单击该项目并选择 Open Module Settings . 然后转到模块中的 Sources 选项卡,找到 src 文件夹,右键单击它并将其标记为 Sources (蓝色) .

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

  • 1
    • Build -> Rebuild Project

    • File -> Invalidate Caches.. -> Invalidate and restart

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

  • 17

    我发现这个博客在我的案例中确实解决了这个问题 . 事实证明你必须添加某种意图:

    <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

  • 1

    上面没有任何东西帮助我 . 过了一段时间后,我发现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>
    
  • 593

    有时为所有用户卸载应用程序会有所帮助 . 转到设置中的应用程序列表转到您的应用程序或滚动到列表的末尾,然后卸载它 . 希望这可以帮助

  • 3

    @TouchBoarder几乎拥有它 . 虽然选择“不启动活动”会导致无法启动 .

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

    选择你的活动 . 这并不能完全解决预期的行为,而是正确地覆盖它 .

  • 4

    那我也得到了这个错误,

    错误:找不到默认活动

    在我的情况下它是为了磨损模块..我不需要在那里的活动所以我所做的只是简单

    • 去编辑配置 - >穿 - >启动选项 - >启动 - >没什么 .

    • 应用更改 . 单击“确定” .

    • 从清单文件中删除现有的默认活动代码 .

    注意:不要忘记清理项目和同步Gradle文件 .

  • 2

    直到这里没有任何帮助我和Android Studio已经在我之前运行的所有应用程序中解决了这个问题 - 所以我知道 - 它与我的代码没有关系 .

    现在我解决了它:

    您需要重置Android Studio:只需转到C:\ Users \ yourusername \ androidStudio3.2(或类似)并删除此目录 .

    这个人在老版本的视频中向您展示了如何做到这一点:https://www.youtube.com/watch?v=AwZEliSPGwU&t

  • 1

    我收到了这个错误 .

    并且发现在启动器活动的清单文件中我没有将 actioncategory 放在intent过滤器中 .

    错了一个:

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

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

  • 224

    错误:找不到默认活动

    我这样解决了
    运行>>编辑配置>> Android应用程序>>在"Launch"编辑框中输入默认活动类的路径 .

  • 1

    我从一个演示应用程序开始并修改它 . 我将源代码中的java路径从com - > example - > foo更改为我自己的并编辑了清单;然而,Android Studio(0.8.7)非常困惑 .

    我尝试了上面列出的所有内容,但没有一个适用于我 . 也许它甚至让事情变得更糟?

    我的最终解决方案是在 .idea 子目录中编辑 <projectname>.iml ,方法是在Android Studio(又名文本编辑器)中打开它 .

    之前:

    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" generated="true" />
    </content>
    

    我(重新)添加了src目录(第2行) . 后:

    <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重新加载并开始按预期运行 .

  • 1

    你的app有默认的启动活动吗?

    可能这可能是你的错

    Step 1 :选择“编辑配置”

    Step 2 :观察此警告:未找到默认活动

    Step 3 :选择默认活动

    Step 3 :保存更改并完成

    Good Luck

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

    无需使缓存无效 .

  • 4

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

  • 2

    Android Manifest.xml设置如下的起始活动

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

    我将我的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库,它促使我定义默认意图 . 这个补充解决了我的问题 .

  • 4

    我的经验:确保你的所有java文件都已被识别,如果IDEA没有识别你的java文件,那么他就无法理解什么是“活动”的意思

    祝好运 :)

    enter image description here

相关问题