等待目标设备上线

188

我最近更新了Android Studio 2.3,现在当我尝试运行应用程序时,模拟器无法上线。它会在300秒后超时。

此外,该应用程序一直出现致命异常错误(OOM),我不确定如何修复或这是否与模拟器问题有关。

非常感谢任何帮助。再次说明,我的编程知识非常有限,所以如果您的答案可以保持简单,那将是非常好的。


这在更新后也发生在我身上。ADB 一直显示设备离线。我认为这是一个 Studio 的 bug。切换到 Genymotion 模拟器解决了我的问题。 - j2emanue
6
我遇到了真机问题,而不是模拟器。我的 Android Studio 版本是 4.2.2,平台工具已经更新。 - Qamar
45个回答

199

以下步骤适用于 Android Studio 3.x。

步骤 1:打开 AVD 管理器。

显示图像描述

步骤 2:右键单击正在测试的虚拟设备,并清除数据。

显示图像描述


7
谢谢,终于成功了。可能是一些没有在模拟器上更新正确的文件。 - Sauleil
4
在我使用AS 2.3.3和Nexus 5X时,这对我起了作用。 - Pavlo
4
谢谢伙计 :) 运行得很顺利。 有人向Google开发者报告了这个问题吗? - Shashank Kapsime
1
最终我创建了一个新模拟器(因为需要适应屏幕尺寸),并删除了旧的。这也解决了问题。 - dazed
1
工作得非常好。请注意,AVD管理器现在称为设备管理器,而不是右键单击设备,您必须单击“操作”下面向右的向下箭头才能找到“擦除数据”选项。 - MarcusOtter
显示剩余4条评论

77

我之前也遇到了同样的问题,然后我去了AVD管理器,在模拟器上右键点击并停止它,然后再次运行应用程序,这次它就可以工作了。

工具 -> AVD管理器 -> 右键点击正在使用的模拟器 -> 停止

现在再次运行您的应用程序。

注意:有时直接关闭模拟器对于上述问题不起作用,但是像上面提到的从AVD管理器中停止它是有效的。


仿真器似乎出了问题。这个可行!谢谢! - MMurph23
不确定Android Studio 2.3.1是否存在此问题,但当这个问题在2.3.0中首次遇到时,这个解决方案有效。我从未在2.3.1中遇到过同样的问题。 - WhiteShadow
我认为这可能会意外地解决竞态条件问题,但真正的100%解决方案是下面的MarkDubya。 - Sky Kelsey
45
这个回答指明了正确的方向,但真正帮助我的是在 AVD 管理器中使用 "冷启动" 选项。 - lbarbosa
6
冷启动有帮助! - Karzel
显示剩余3条评论

59

如果您正在使用 Mac,请确保退出 Docker for Mac。这对我有用。

输入图像描述


4
太聪明了!能节省很多时间...赞一个! - Abdullah Md. Zubair
3
Docker for Mac 是什么? - Millenial2020
1
永远使用Docker!~ - neobie
7
请问有人能够解释如何退出Docker for Mac吗? - TJ1
4
为什么Docker在这种情况下会导致模拟器出现问题?这个方法对我有效,但我想知道为什么Docker会与模拟器发生冲突? - TheLearner
显示剩余2条评论

30

经过三天的测试,我认为adb和模拟器之间存在竞争条件。当请求运行一个应用程序时,如果没有运行任何模拟器,你会看到“正在初始化ADB”,然后是模拟器选择,它开始运行并出现“正在等待目标上线”的提示。使用adb kill-server、kill -9或任务管理器中的"结束进程"将导致adb死亡并重新启动,您的APK安装完成后就可以运行了。对我来说,让"adb kill-server"导致adb在此处死亡然后重新启动似乎有些奇怪,但这又是另一个谜团,也许。


2
谢谢你找到这个问题。对于我来说,在Android Studio 2.3.1上绝对有效。 - Sky Kelsey
在 Windows 10 上,结束 adb.exe 进程并重新启动似乎也可以解决我的问题。谢谢! - sillv0r
这应该是正确的答案。选定的答案对我没用,但这个每次都有效。谢谢! - HondaGuy
1
在终端中输入:cd更改目录到:android> sdk> platform-tools。然后输入:'adb kill-server'。然后输入:'adb start-server'。 - Halfacht
4
在AS v2.3.3上,这个提议的解决方案并没有起作用。我从终端运行了adb kill-server命令。waiting for target device...消息没有停止,服务器也没有重新启动。我仍然没有解决方案。 - Mike S.
显示剩余3条评论

26
  1. 另一种情况是需要重新安装 Android 模拟器。这可能会发生当你安装了一个更高版本的 Android Studio,然后为其更新 SDK 并返回到旧版本时。

    工具 - Android - SDK 管理器 - SDK 工具 - Android 模拟器 - 取消勾选,应用更改,再勾选,应用更改

  2. 如果你使用的是 Mac,请禁用 Docker 应用程序

  3. 重启模拟器

    工具 - Android - AVD 管理器 (或在任务管理器中终止 adb 进程)。


2
在我的情况下,模拟器甚至没有安装。 - mythicalcoder
1
不错,这个帮了我大忙! - peterkodermac
1
我也尝试了这个选项,但问题仍然存在。 - Vatsal Desai
在我的情况下,Android SDK平台只安装了部分。 - fhery021
Docker在我的情况下是原因!谢谢! - aderushev
或者只是更新了。按照这里的第一步,我注意到我安装的所有工具都有可用的更新。一旦我安装了更新,我的模拟器就上线了。 - Nick Young

18

进入你的Android Studio,打开AVD Manager。在模拟器上右键点击,选择wipe data。然后再次运行你的应用程序

模拟器将执行一次干净的启动,然后安装您的apk文件,最终您的应用程序将运行。

总结: AVD管理器---> 右键单击模拟器---> 擦除数据---> 再次运行应用程序

如果问题仍然存在,那么只需返回到您的avd管理器,卸载模拟器,然后添加新模拟器。一旦添加了新模拟器,在您的avd管理器中运行模拟器...然后运行您的应用程序。 如果在首次运行应用程序之前已经有一个模拟器在运行,则更简单


1
只有在卸载/重新安装后,它才对我起作用。 - Ben

17
尝试了所有这些解决方案后,唯一解决我的问题的方法是将虚拟设备的图形配置从自动更改为软件(首先尝试了硬件但没有成功)。

这个虚拟设备的图形配置在哪里? - stramin
2
@stramin 前往 Android 虚拟设备管理器(从工具菜单中),点击虚拟机上的编辑(笔图标),在那里找到图形选项。 :) - Filip Savic

11

以下解决方案适用于我:

工具 -> AVD管理器 -> 点击下拉箭头 -> 选择 Cold Boot Now

图片描述

图片描述


9
似乎Android Studio(使用版本3.5.1)会在一段时间后进入奇怪的状态。对我来说,这个方法起到了作用。
文件->无效缓存/重启->无效并重启

8

以下是我使用的步骤:

  1. 关闭正在运行的模拟器
  2. 进入AVD管理器
  3. 选择可用的模拟器
  4. 在该动作选项卡(最后一个)中,点击下拉箭头并选择COLD BOOT NOW
  5. 最后运行您的应用程序

冷启动对我来说已经足够了。 - PJ_Finnegan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接