Android Studio中找不到默认活动

时间:2013-09-16 12:57:01

标签: android android-studio android-fragmentactivity

我刚刚升级到Android Studio 0.2.8,当我尝试编辑运行配置时收到“默认活动未找到”的错误。

当我启动Android Studio时,我收到此错误“仅允许从事件调度线程访问”

我正在使用的活动是片段活动。

到目前为止,我已尝试重建并使缓存/重启无效。两者都没用。

请让我知道如何解决问题。

29 个答案:

答案 0 :(得分:48)

您是否在主要活动中添加了ACTION_MAIN意图过滤器?如果你不添加它,那么android将不知道要作为主要活动启动哪个活动。

例如:

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

答案 1 :(得分:38)

在Android Studio中,右键单击该项目,然后选择 打开模块设置 。然后转到模块中的 来源 标签,找到 src 文件夹,右键单击并标记如 来源 (蓝色)。

编辑:Android Studio的更高版本中没有来源标签,但您可以编辑 build.gradle 文件:{ {3}}(感谢评论Josh)

答案 2 :(得分:25)

将项目导入Android Studio时遇到了同样的问题,可能是因为该项目是在早期版本的Android Studio上开发的,而不是当前安装在我的计算机上。

解决它的原因只是选择:

<强> File -> Invalidate Caches / Restart...

然后选择 Invalidate and Restart

答案 3 :(得分:15)

如果您没有标签,并且您开始使用空活动,请尝试此操作。 下面是一个示例代码示例:

<application android:label="@string/app_name">

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

</application>

现在转到AndroidManifest.xml文件。接下来从此代码中复制intent过滤器。查看您的清单文件非常好,并将intent过滤器粘贴到上面代码中的确切位置。 (在.yourActivityName&gt;清单的一部分之后。)我希望这有帮助。

答案 4 :(得分:9)

如果即使执行后仍尝试编辑运行配置时仍然出现“找不到默认活动”错误,则该错误:

使缓存无效并重新启动

然后尝试删除“设置/首选项”文件夹:

/< USER_HOME_DIR >/.AndroidStudioPreview3.2

或在Mac上:

/Users/<USER_NAME>/Library/Preferences/.AndroidStudioPreview3.2

答案 5 :(得分:9)

当我点击&#34;打开模块设置&#34;,时没有&#34;来源&#34;标签,我认为因为Android Studio的新版本已被删除(我在0.8.14上)。所以我不得不这样做:

将这些行添加到build.gradle块内的android { ... }文件中

android { ... sourceSets { main.java.srcDirs += 'src/main/<YOUR DIRECTORY>' } }

编辑文件后,点击 工具&gt; Android&gt;使用Gradle文件同步项目

归功于this answerthis comment

答案 6 :(得分:6)

以下为我做了诀窍。从运行 - &gt;编辑配置

enter image description here

答案 7 :(得分:3)

我的问题归结为有时会弹出的另一个错误,指出

Manifest Merger failed with multiple errors in Android Studio

最终导致我出现问题的原因是存在多个清单(调试清单,以及我刚刚导入的新模块中的清单),并且由于这些原因它们无法正确合并。看到this answer之后,我能够分析合并的清单,并找出问题的原因并加以解决。

答案 8 :(得分:2)

enter image description here

应用-> 编辑配置
之后,在启动中的“无”上更改值

答案 9 :(得分:2)

我刚刚在Android Studio 1.5.1中遇到了同样的错误。并找到了问题的根源。我不确定原因是人为错误还是IDE的行为中出现了一些奇怪的故障,但是现有的关于这个主题的StackOverflow问题似乎都没有显示出来,所以我认为无论如何我都将它作为答案发布。 / p>

对我来说,无论是我的团队成员还是IDE本身,都更改了启动器活动清单条目,导致它看起来像这样:

        <activity
            android:name="com.rhaebus.ui.activities.ActivitySplash"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <id android:name="android.intent.id.LAUNCHER" />
            </intent-filter>
        </activity>

事实上它应该是这样的:

        <activity android:name="com.rhaebus.ui.activities.ActivitySplash"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" /> <!-- Change Here -->
            </intent-filter>
        </activity>

因此,请对清单中的启动器活动的格式进行双倍,三倍,四倍检查,您可以节省一些时间。

希望这有帮助。

编辑: 我强烈建议人们不要使用建议在模块的配置选项中手动选择启动器活动的答案,因为这导致应用程序不再显示在Samsung Galaxy S5 Neo上的已安装应用程序列表中三星Galaxy S6(至少对我而言)。

答案 10 :(得分:1)

请确保清单中的包名与您的主要活动相同

答案 11 :(得分:1)

这发生在我身上,因为我把清单中的路径大写了。改变了:

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

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

并且已修复

答案 12 :(得分:1)

我今天遇到了同样的问题,并在这里找到答案。

对我而言,不同之处在于昨天它运行良好,所以我认为它不是真正的配置问题,Android Studio的配置和版本都没有改变。

幸运的是,在尝试任何其他答案之前,我尝试重新启动Android Studio,幸运的是,这解决了这个问题。

所以对于遇到这种情况的所有人:首先要尝试的是重新启动Android Studio,只有在没有解决问题的情况下才尝试其他答案。

答案 13 :(得分:1)

  1. 在Android Studio中切换到Project透视图(不是Android透视图)。

  2. 确保您的项目遵循gradle插件的默认结构(即 project_dir / app / src / main / java ...

  3. 删除您看到的所有构建文件夹和子文件夹。

  4. 在工具栏中点击构建 - &gt;清洁项目,然后构建 - &gt;重建项目

  5. 尝试运行该项目。

答案 14 :(得分:1)

以我为例,当我从项目(Project / .ida)中删除.idea文件夹并再次重新打开Android Studio时,它可以正常工作。

答案 15 :(得分:0)

就我而言,这是由于系统突然关闭而发生的。 我按照以下步骤操作:

  1. 关闭 Android Studio
  2. 前往
<块引用>

C:\Users\my_user_name.AndroidStudio4.0\system\caches

  1. 删除“缓存”文件夹
  2. 重新启动 Android Studio

答案 16 :(得分:0)

修改&#34; Workspace.xml&#34; (按Ctrl + Shft + R搜索它)

  1. 使用包名称修改活动名称

  2. 请务必更改&#34; name =&#34; USE_COMMAND_LINE&#34; to value =&#34; false&#34;

  3. 重新加载项目

  4. 完成!

答案 17 :(得分:0)

我知道了。我在活动声明中错误地添加了final关键字。一旦删除,一切正常!

public  class SplashActivity extends AppCompatActivity {
...
}

答案 18 :(得分:0)

检查您的AndroidManifest.xml文件中是否有重复的标签。

答案 19 :(得分:0)

在这种情况下可能会发生很多情况(未找到默认活动) 如果所有代码都很好,尤其是在Manifest上,则只需使Invalidate Cache并重新启动Studio,

但是有时候,当清单上有重复的活动声明时,不仅会发生在Main活动上,而且也会由子活动触发。

那件事发生在我身上,未找到默认活动,因为我在清单上有重复的子活动,删除后,一切都很好

答案 20 :(得分:0)

在某些情况下,您可以使用带有某些category字段的模型,如果要在所有位置进行重构,则可以在清单文件中对其进行重构,然后标记xml无效。

答案 21 :(得分:0)

我尝试了所有解决方案,但根本没有用。 比我曾尝试在我的android studio中禁用“即时运行”。

转到Android Studio 设置首选项(对于MAC)-> 构建,执行,部署-> 即时运行< / strong>。

取消选中即时运行功能,然后从文件菜单中单击使用gradle文件同步项目

现在运行您的构建...

答案 22 :(得分:0)

通过进入“编辑配置”菜单(点按“ Shift”三下,键入“编辑配置”),然后将“启动选项”>“启动”更改为“无”,可以使Android Studio不抱怨。

为了避免引起混淆,我可能会添加一个包含说明的通用活动。

答案 23 :(得分:0)

  1. 右键单击该项目,然后选择“打开模块设置”。
  2. 转到模块中的“来源”标签。
  3. 找到你的src文件夹。
  4. 右键单击它并将其标记为“来源”。
  5. 这解决了我的错误。

答案 24 :(得分:0)

您可以采取以下两个步骤:

  1. 转到配置并输入要启动的活动名称
  2. 如果仍然无效禁用即时运行

答案 25 :(得分:0)

如果您将目录名称(类结构)(例如com.dir.sample)更改为com.dir.sample1,则不要忘记将包com.dir.sample更改为com.dir.sample1。

答案 26 :(得分:0)

对于像我这样努力寻找&#34;来源标签&#34;:

的人

enter image description here

在这里你必须标记你的&#34; src&#34;蓝色文件夹(首先点击标记为:来源,然后在 src 文件夹中),您就可以了。

答案 27 :(得分:-1)

默认活动名称已更改(例如SplashActivity-> SplashActivity1)并为我工作

答案 28 :(得分:-2)

  1. 在Android Studio中
  2. 转到编辑配置。
  3. 选择应用。
  4. 选择午餐活动路径。
  5. 申请,好的。

    谢谢!