我刚刚升级到 Android Studio 0.2.8,当我尝试编辑运行配置时出现“未找到默认活动”的错误消息。
当我启动 Android Studio 时,我收到此错误“仅允许从事件调度线程访问”
我正在使用的活动是片段活动。
到目前为止,我已经尝试重建并使缓存/重新启动无效。两者都没有用。
请让我知道我能做些什么来解决这个问题。
我刚刚升级到 Android Studio 0.2.8,当我尝试编辑运行配置时出现“未找到默认活动”的错误消息。
当我启动 Android Studio 时,我收到此错误“仅允许从事件调度线程访问”
我正在使用的活动是片段活动。
到目前为止,我已经尝试重建并使缓存/重新启动无效。两者都没有用。
请让我知道我能做些什么来解决这个问题。
您是否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>
在 Android Studio 中,右键单击项目并选择Open Module Settings。然后转到模块中的Sources选项卡,找到src文件夹,右键单击它并将其标记为Sources(蓝色)。
编辑: Android Studio 的更高版本中没有源选项卡,但您可以编辑build.gradle文件:https ://stackoverflow.com/a/22028681/1101730 (感谢 Josh 的评论)
我在将项目导入 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 文件。接下来从这段代码中复制意图过滤器。看看你的清单文件真的很好,并将意图过滤器粘贴到上面代码中的确切位置。(在清单的 .yourActivityName> 部分之后。)我希望这会有所帮助。
如果即使在执行后尝试编辑运行配置时仍然出现“未找到默认活动”的错误:
使缓存无效并重新启动。
然后尝试删除 Settings/Preferences 文件夹:
/< USER_HOME_DIR >/.AndroidStudioPreview3.2
或在 Mac 上:
/Users/<USER_NAME>/Library/Preferences/.AndroidStudioPreview3.2
当我单击“打开模块设置”时,没有“源”选项卡,我认为是因为较新版本的 Android Studio(我在 0.8.14 上)已将其删除。所以我不得不这样做:
将这些行添加到块build.gradle
内的文件中android { ... }
:
android {
...
sourceSets {
main.java.srcDirs += 'src/main/<YOUR DIRECTORY>'
}
}
编辑文件后,单击Tools > Android > Sync Project with Gradle Files。
我的问题归结为有时会弹出一个额外的错误,说明
Manifest Merger failed with multiple errors in Android Studio
最终导致我的问题的原因是有多个清单(一个调试清单,以及我刚刚导入的新模块中的一个清单),因此它们没有正确合并。看到这个答案后,我能够分析合并的清单并找到问题的原因并修复它。
这发生在我身上,因为我将清单中的路径大写。改变:
<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>
它是固定的
我刚刚在 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>
因此,请双重、三重、四重检查清单中启动器活动的格式,您也许可以节省一些时间。
希望这可以帮助。
编辑:我强烈建议人们不要使用建议在模块的配置选项中手动选择启动器活动的答案,因为这会导致应用程序不再显示在三星 Galaxy S5 上的已安装应用程序列表中Neo 和三星 Galaxy S6(至少对我而言)。
您可以通过转到“Edit Configurations”菜单(点击“Shift”三次,键入“Edit Configurations”),然后将 Launch Options > Launch 更改为“Nothing”来让 Android Studio 不抱怨。
我可能会添加一个包含说明的通用活动,以避免任何混淆。
我今天遇到了同样的问题,并在这里查看了答案。
对我来说,不同之处在于昨天它运行良好,所以我认为这不是配置问题,Android Studio 的配置和版本都没有改变。
幸运的是,在尝试任何其他答案之前,我尝试了重新启动 Android Studio,幸运的是,这解决了这个问题。
因此,对于所有遇到这种情况的人:首先要尝试的是重新启动 Android Studio,只有在这不能解决问题的情况下,请尝试此处的其他答案。
在 Android Studio 中切换到 Project 透视图(不是 Android 透视图)。
确保您的项目遵循 gradle 插件的默认结构(即project_dir/app/src/main/java...)
删除您看到的所有构建文件夹和子文件夹。
在工具栏中单击Build -> Clean Project,然后单击 Build -> Rebuild Project。
尝试运行该项目。
请确保清单中的包名称与您的主要活动相同
就我而言,当我从项目 (Project/.ida) 中删除 .idea 文件夹并再次重新打开 Android Studio 时,它起作用了。
修改“Workspace.xml”(按 Ctrl + Shft + R 搜索)
用包名修改活动名
确保将“name="USE_COMMAND_LINE" 更改为 value="false"
重新加载项目
完毕!
如果您将目录(类结构)的名称(例如 com.dir.sample 更改为 com.dir.sample1),之后不要忘记将包 com.dir.sample 更改为 com.dir.sample1。
这解决了我的错误。
您可以采取两个步骤:
我已经尝试了所有解决方案,但根本不起作用。比我尝试在我的 android 工作室中禁用即时运行。
转到 Android Studio设置或首选项(对于 MAC)->构建、执行、部署->即时运行。
取消选中即时运行功能,然后单击文件菜单中的带有 gradle 文件的同步项目
现在运行你的构建......
在某些情况下,您可以拥有带有某个category
字段的模型,如果您将在所有地方重构它,它可能会在清单文件中重构它,然后标签 xml 将变得无效。
我想到了。我在活动声明中错误地添加了 final 关键字。一旦我删除它,一切正常!
public class SplashActivity extends AppCompatActivity {
...
}
就我而言,这是由于系统突然关闭而发生的。我按照以下步骤操作:
C:\Users\my_user_name.AndroidStudio4.0\system\caches
这种情况可能会发生很多可能性(未找到默认活动)如果所有代码都很好,尤其是在Manifest上,只需要使缓存无效并重新启动工作室,
但有时当您在清单上有重复的活动声明时会发生这种情况,不仅是主活动,它也由子活动触发。
这发生在我身上,找不到默认活动,因为我在清单上有重复的子活动,删除后,一切都很好
AndroidManifest.xml
检查您的文件中是否有任何重复的标签。
在 Android Studio 中
去编辑配置。
选择应用程序。
选择午餐活动路径。
申请,好的。
谢谢!!
默认活动名称已更改(如 SplashActivity -> SplashActivity1)并为我工作