无法从 Eclipse、android 中删除虚拟设备
Posted
技术标签:
【中文标题】无法从 Eclipse、android 中删除虚拟设备【英文标题】:Can't delete virtual device from Eclipse, android 【发布时间】:2011-12-20 04:37:34 【问题描述】:我有多个虚拟设备,其中一些无法删除。
错误信息是
android 虚拟设备 XXX 当前正在模拟器中运行,并且 无法删除
当我刚刚重新启动 Ubuntu 并且只启动了 Eclipse。
【问题讨论】:
你是怎么删除的?? 我可以轻松地从 Eclipse 中删除和添加。让我知道你想如何删除它。 如果模拟器正在运行,如果你试图删除当前正在运行的模拟器,它不会被删除。在您要删除虚拟设备之前,请关闭所有正在运行的模拟器 模拟器没有像我提到的那样运行,至少我没有运行它。我正在尝试从 Eclipse AVD Manager 中删除它!它是平台4.0。特意重启了Ubuntu杀掉所有进程,因为没找到。。好像只是Android 4.0平台的问题。 目前 Android Studio 也有同样的问题。 【参考方案1】:在 Linux/*nix 和 OSX 中:
-
在您的
$HOME
目录中找到.android 文件夹。
在 .android 中应该有一个 avd 文件夹
avd文件夹中应该有一个或多个.ini文件和一个对应的*.avd虚拟设备文件夹。
删除 .ini 文件和您要删除的 .avd 文件夹。
返回 Android sdk 和 AVD 管理器。
我希望这会有所帮助...
【讨论】:
对 OSX 的工作方式相同。在终端转到 ~/.android/avd/ 然后删除 .ini 和 .avd 文件。当您在 Android 虚拟设备窗口中刷新列表时,ADV 将消失。 我敢打赌它也适用于 Windows。猜猜android的SDK的结构到处都是一样的:)只是路径问题。 谢谢约瑟夫。你能解释一下吗,如果我们双击我创建的.avd,它显示的路径只能通过终端导航。但是,如果我尝试通过 finder->/Users/home/ 我看不到 /.android/avd 。为什么会这样? 如果您查看 ~/.android/avd/.avd 目录,您会看到几个带有 .lock 扩展名的文件。您可以删除这些,然后您将能够使用虚拟设备管理器应用程序。 如果您在尝试返回 AVD 管理器时收到错误消息,提示您尚未设置 SDK 位置,请给工作区加载时间。我按照上面的方法得到了这个消息,花了一段时间才发现我跳得太快而无法回到 AVD【参考方案2】:在 /home/.android/[您的设备].avd 文件夹中有时会留下 *.lock 文件。这可能是因为意外的仿真器终止。 AVDM 不处理这个问题。手动删除设备文件夹或覆盖它可以解决问题。
在尝试删除 AVDM 中的虚拟设备之前。从相应的 /home/.android/[your device].avd 文件夹中删除所有 *.lock 文件。然后,您将能够在没有“设备 XXX 当前正在运行”弹出窗口的情况下进行删除。
【讨论】:
我试图删除的最初原因是我无法启动它,并且出现了一个非常无法解释的错误。所以,对我来说,这是最好的答案。【参考方案3】:另一种更简单的解决方案,适用于 AVD 管理器。
从 AVD 管理器中单击新建按钮。将名称设置为您无法关闭的设备的名称,选择任何设置,然后勾选“使用相同名称覆盖现有 AVD”框。
这将杀死旧的并用新的覆盖。新的没有运行,所以可以删除。
【讨论】:
【参考方案4】:我一直在寻找 java 代码,这个错误真的意味着你有一个 AVD 正在运行...... 你试过用 top 或 htop 杀死他们吗(这更好)。
// check if the AVD is running
if (avdInfo.isRunning())
display.asyncExec(new Runnable()
public void run()
Shell shell = display.getActiveShell();
MessageDialog.openError(shell,
"Delete Android Virtual Device",
String.format(
"The Android Virtual Device '%1$s' is currently running in an emulator and cannot be deleted.",
avdInfo.getName()));
);
return;
【讨论】:
用htop,你可以用f3搜索类似模拟器的东西:) 更有趣的代码 sn-p 将显示如何确定avdInfo.isRunning()
。 (这可能表明扫描了 avd 文件夹中的 *.lock 文件。)【参考方案5】:
从 Finder(OSX)或目录资源管理器(Linux 和 Windows)
-
在 $HOME 目录中找到 .android 文件夹 [隐藏文件夹]。 Show/Hide Folders on MAC
在 .android 中应该有一个 [Your Device].avd 文件夹
在 [Your Device].avd 文件夹中找到 *.lock 文件并删除
来自 Android Studio
-
打开 AVD 管理器
选择要删除的虚拟设备
点击末尾的向下箭头,选择[Show on Disk],打开目录
在 [Your Device].avd 文件夹中找到 *.lock 文件并删除
完成这些步骤后,您可以从 AVD Manager 中删除
【讨论】:
【参考方案6】:我也遇到了这个问题.. 无法在 $home 中找到/查看 .android 文件夹。不知道是隐藏还是什么。如果您在 AVD 管理器中双击一个 android 设备,它会向您显示“正在运行的 avd”的路径,这正是每个人都说它应该在的位置。由于我无法使用 GUI 删除这些文件,因此我使用了 CLI(终端执行此操作)。您可以使用以下命令 [cd] 更改目录 [rm -R] 以删除文件。一步一步:
来自终端 cli,看起来像这样:
nameOfYourMac:~ MacUser$
输入
cd .android/avd
(目录更改)
nameOfYourMac:avd MacUser$
键入
rm -R nameOfYourVirtualDevice.avd
很简单。现在您应该可以在 Eclipses 的 AVD 管理器中删除设备了。
【讨论】:
以上是关于无法从 Eclipse、android 中删除虚拟设备的主要内容,如果未能解决你的问题,请参考以下文章
用eclipse编写的Android程序,怎么修改在虚拟机上显示的程序名字?
无法直接从 Eclipse 到设备调试 android 应用程序