【问题标题】:Can't delete virtual device from Eclipse, android无法从 Eclipse、android 中删除虚拟设备
【发布时间】:2011-12-20 04:37:34
【问题描述】:

我有多个虚拟设备,其中一些无法删除。

错误信息是

android 虚拟设备 XXX 当前正在模拟器中运行,并且 无法删除

当我刚刚重新启动 Ubuntu 并且只启动了 Eclipse。

【问题讨论】:

  • 你是怎么删除的??
  • 我可以轻松地从 Eclipse 中删除和添加。让我知道你想如何删除它。
  • 如果模拟器正在运行,如果你试图删除当前正在运行的模拟器,它不会被删除。在您要删除虚拟设备之前,请关闭所有正在运行的模拟器
  • 模拟器没有像我提到的那样运行,至少我没有运行它。我正在尝试从 Eclipse AVD Manager 中删除它!它是平台4.0。特意重启了Ubuntu杀掉所有进程,因为没找到。。好像只是Android 4.0平台的问题。
  • 目前 Android Studio 也有同样的问题。

标签: android android-emulator


【解决方案1】:

在 Linux/*nix 和 OSX 中:

  1. 在您的$HOME 目录中找到.android 文件夹。
  2. 在 .android 中应该有一个 avd 文件夹
  3. avd文件夹中应该有一个或多个.ini文件和一个对应的*.avd虚拟设备文件夹。
  4. 删除 .ini 文件和您要删除的 .avd 文件夹。
  5. 返回 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)

    1. 在 $HOME 目录中找到 .android 文件夹 [隐藏文件夹]。 Show/Hide Folders on MAC
    2. 在 .android 中应该有一个 [Your Device].avd 文件夹
    3. 在 [Your Device].avd 文件夹中找到 *.lock 文件并删除

    来自 Android Studio

    1. 打开 AVD 管理器
    2. 选择要删除的虚拟设备
    3. 点击末尾的向下箭头,选择[Show on Disk],打开目录
    4. 在 [Your Device].avd 文件夹中找到 *.lock 文件并删除

    完成这些步骤后,您可以从 AVD Manager 中删除

    【讨论】:

      【解决方案6】:

      我也遇到了这个问题.. 无法在 $home 中找到/查看 .android 文件夹。不知道是隐藏还是什么。如果您在 AVD 管理器中双击一个 android 设备,它会向您显示“正在运行的 avd”的路径,这正是每个人都说它应该在的位置。由于我无法使用 GUI 删除这些文件,因此我使用了 CLI(终端执行此操作)。您可以使用以下命令 [cd] 更改目录 [rm -R] 以删除文件。一步一步:

      1. 来自终端 cli,看起来像这样:

        nameOfYourMac:~ MacUser$

      2. 输入

        cd .android/avd

        (目录更改)

        nameOfYourMac:avd MacUser$

      3. 键入

        rm -R nameOfYourVirtualDevice.avd

      很简单。现在您应该可以在 Eclipses 的 AVD 管理器中删除设备了。

      【讨论】:

        猜你喜欢
        • 2011-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-07
        • 2017-08-09
        • 2012-11-09
        相关资源
        最近更新 更多