无法从 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 中删除虚拟设备的主要内容,如果未能解决你的问题,请参考以下文章

无法加载的android虚拟设备

Android Eclipse 导入现有代码

用eclipse编写的Android程序,怎么修改在虚拟机上显示的程序名字?

无法直接从 Eclipse 到设备调试 android 应用程序

无法从 Eclipse 运行 android 2.2 模拟器

无法使用 Eclipse 中的 IvyDE 插件从常春藤缓存中删除过时的工件