在Android Studio中找不到默认活动

我刚刚升级到Android Studio 0.2.8,当我尝试编辑运行configuration时,出现“Default Activity not found”错误。

当我启动Android Studio时,我得到这个错误“只允许从事件调度线程访问”

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

到目前为止,我已经尝试重build和无效的caching/重新启动。 两者都没用。

请让我知道我能做些什么来解决这个问题。

在Android Studio中,右键单击该项目并select打开模块设置 。 然后去你的模块中的Sources选项卡,findsrc文件夹,右键单击它并将其标记为Sources (蓝色)。

编辑:在Android Studio的更高版本中没有来源选项卡,但你可以编辑build.gradle文件: https : //stackoverflow.com/a/22028681/1101730 (感谢评论Josh)

你有没有添加ACTION_MAIN意图filter到你的主要活动? 如果你不添加这个,那么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> 

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

什么解决了它只是执行:

File -> Invalidate Caches / Restart...

然后单击“ Invalidate and Restart

如果你没有选项卡,并开始一个空的活动尝试这一点。 以下是一个示例代码示例:

 <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文件。 接下来从这个代码复制意图filter。 看看你的清单文件真的很好,并将意图filter粘贴在上面的代码中。 (在.yourActivityName>清单的一部分之后。)我希望这有助于。

当我点击“打开模块设置”时, 没有“源”选项卡 ,我想是因为Android Studio的新版本(我在0.8.14)已经被删除了。 所以我不得不这样做:

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

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

编辑文件后,单击工具> Android>与Gradle文件同步项目

信用这个答案和这个评论 。

以下为我做了诡计。 从运行 – >编辑configuration

在这里输入图像说明

我刚刚在Android Studio 1.5.1中遇到同样的错误。 只是发现问题的根源。 我不确定这个原因是IDE中的人为错误还是一些奇怪的故障,但是关于这个主题的现有的StackOverflow问题似乎没有显示任何关于这个问题的东西,所以我想我总是把它作为答案发布。

对我来说,无论是我的团队成员还是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> 

所以请双倍,三倍,四倍检查清单中启动器活动的格式,并且可能会节省一些时间。

希望这可以帮助。

编辑:我强烈build议人们不要去与build议在模块的configuration选项内手动select一个启动器活动的答案,因为这导致应用程序不再显示在三星Galaxy S5上已安装的应用程序列表Neo和三星Galaxy S6(至less对我来说)。

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

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

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

它是固定的

我今天遇到了同样的问题,正在通过这里的答案。

对我来说,不同的是,昨天它工作正常,所以我认为它不能真的成为一个configuration问题,configuration和Android Studio的版本都没有改变。

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

所以对于所有遇到这个问题的人来说:首先要尝试的是重新启动Android Studio,并且只有在这个问题没有解决问题的时候才能尝试其他的答案。

  1. 右键单击该项目,然后select打开模块设置。
  2. 转到模块中的Sources选项卡。
  3. find你的src文件夹。
  4. 右键单击它并将其标记为来源。

这解决了我的错误。

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

修改“Workspace.xml”(按Ctrl + Shft + Rsearch)

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

  2. 确保将“name =”USE_COMMAND_LINE“更改为value =”false“

  3. 重新加载项目

完成!

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

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

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

  4. 在工具栏点击Build – > Clean Project ,然后Build – > Rebuild Project

  5. 尝试运行该项目。

对于那些一直在努力寻找“资源标签”的人来说:

在这里输入图像说明

在这里你必须用蓝色标记你的“src”文件夹(首先点击Mark as:Source ,然后在你的src文件夹中),你就可以走了。

你可以采取两个步骤:

  1. 转到configuration并input要启动的活动的名称
  2. 如果它仍然不工作禁用即时运行
  1. 在Android Studio中
  2. 去编辑configuration。
  3. select应用程序。
  4. select午餐活动path。
  5. 申请,好的。

    谢谢!!