在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,并且只有在这个问题没有解决问题的时候才能尝试其他的答案。
- 右键单击该项目,然后select打开模块设置。
- 转到模块中的Sources选项卡。
- find你的src文件夹。
- 右键单击它并将其标记为来源。
这解决了我的错误。
如果您将目录(类结构)的名称(例如com.dir.sample)更改为com.dir.sample1,那么不要忘记将package com.dir.sample更改为com.dir.sample1。
修改“Workspace.xml”(按Ctrl + Shft + Rsearch)
-
使用包名称修改活动名称
-
确保将“name =”USE_COMMAND_LINE“更改为value =”false“
-
重新加载项目
完成!
-
在Android Studio切换到项目透视图(不是Android透视图)。
-
确保您的项目遵循gradle插件的默认结构(即project_dir / app / src / main / java … )
-
删除您看到的所有生成文件夹和子文件夹。
-
在工具栏点击Build – > Clean Project ,然后Build – > Rebuild Project 。
-
尝试运行该项目。
对于那些一直在努力寻找“资源标签”的人来说:
在这里你必须用蓝色标记你的“src”文件夹(首先点击Mark as:Source ,然后在你的src文件夹中),你就可以走了。
你可以采取两个步骤:
- 转到configuration并input要启动的活动的名称
- 如果它仍然不工作禁用即时运行
- 在Android Studio中
- 去编辑configuration。
- select应用程序。
- select午餐活动path。
-
申请,好的。
谢谢!!