Невозможно удалить виртуальное устройство из Eclipse, android


141

У меня несколько виртуальных устройств, некоторые из них нельзя удалить.

Сообщение об ошибке

Виртуальное устройство Android XXX в настоящее время работает в эмуляторе и не может быть удалено

когда я только что перезапустил Ubuntu и запустил только Eclipse.


1
Как вы пытаетесь удалить ??
EnthuDeveloper

Я могу удобно удалять и добавлять из Eclipse. Дайте мне знать, как вы пытаетесь его удалить.
EnthuDeveloper

Если эмулятор запущен, и если вы пытаетесь удалить текущий эмулятор, он не удаляется. Перед тем как удалить виртуальное устройство, закройте все работающие эмуляторы
Karthi

2
Эмулятор не работает, как я уже говорил, по крайней мере, я его не запускал. Я пытаюсь удалить его из Eclipse AVD Manager! Это платформа 4.0. Я специально перезапустил Ubuntu, чтобы убить все процессы, так как не нашел ... Вроде проблема только платформы Android 4.0.
Whatswrong

Та же проблема для Android Studio на данный момент.
Jono

Ответы:


290

В Linux / * nix и OSX:

  1. Найдите в своем каталоге папку .android$HOME .
  2. В .android должна быть папка avd
  3. В папке avd должен быть один или несколько файлов .ini и соответствующая папка виртуального устройства * .avd .
  4. Удалите как файл .ini, так иПапка .avd, от которой вы хотите избавиться.
  5. Вернитесь к Android sdk и AVD manager.

Надеюсь, это поможет...


40
То же самое для OSX. В терминале перейдите в ~ / .android / avd /, затем удалите файлы <avd name> .ini и <avd name> .avd. Когда вы обновите список в окне Android Virtual Devices, ADV исчезнет.
JosephL

3
и я уверен, что он также работает для окон. Угадайте, что структура SDK для Android везде одинакова :) Просто вопрос путей.
nuala 03

Спасибо JosephL. Не могли бы вы объяснить, путь, который он показывает, если мы дважды щелкнем по нашему .avd, который я создал, можно перемещаться только через терминал. Но если я попытаюсь пройти через Finder -> / Users / home /, я не смогу увидеть /.android/avd. почему это ?
мая

Если вы заглянете в каталог ~ / .android / avd / <avd-name> .avd, вы увидите несколько файлов с расширением .lock. Вы можете удалить их, и тогда вы сможете использовать приложение диспетчера виртуальных устройств.
BJV

Если при попытке вернуться к управлению AVD вы получаете сообщение об ошибке вроде того, что местоположение SDK не установлено, дайте рабочему пространству время для загрузки. Я следил за приведенным выше и получил это сообщение, потребовалось некоторое время, чтобы понять, что я просто прыгал слишком быстро, чтобы вернуться к AVD
nPn

25

В папке /home/.android/[your device] .avd иногда остаются файлы * .lock. Это может быть из-за неожиданного завершения работы эмулятора. AVDM этим не занимается. Удаление вручную папки устройства или переопределение ее решает проблему.

Прежде чем пытаться удалить виртуальное устройство в AVDM. Удалите все файлы * .lock из соответствующих файловых папок /home/.android/[your device] .avd. После этого вы сможете удалить без всплывающего окна «Устройство XXX запущено».


Первоначальная причина, по которой я пытался удалить, заключалась в том, что я не смог запустить его из-за очень необъяснимой ошибки. Так что для меня это лучший ответ.
shalafi

19

Альтернативное и гораздо более простое решение, работающее из диспетчера AVD.

В диспетчере AVD нажмите кнопку «Создать». Задайте имя как имя устройства, которое вы не можете закрыть, выберите любые настройки и отметьте поле с надписью Переопределить существующий AVD с тем же именем.

Это убьет старый и перезапишет новый. Новый не запущен, поэтому его можно удалить.


6

Я искал 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 искать что-то вроде эмулятора :)
Квентин ДОММЕРК

Еще более интересным будет фрагмент кода, показывающий, как avdInfo.isRunning()принимается решение. (Вероятно, это показывает, что папка avd сканируется на наличие файлов * .lock.)
Рисадинья

1

Из Finder (OSX) ИЛИ в проводнике каталогов (Linux и Windows)

  1. Найдите папку .android [Скрытая папка] в каталоге $ HOME. Показать / скрыть папки на MAC
  2. В .android должна быть папка [Ваше устройство] .avd
  3. Найдите файлы * .lock и удалите их в папке [Your Device] .avd.

Из Android Studio

  1. Откройте AVD Manager
  2. Выберите виртуальное устройство, которое вы хотите удалить
  3. Щелкните стрелку вниз в конце и выберите [Показать на диске], откроется каталог.
  4. Найдите файлы * .lock и удалите их в папке [Your Device] .avd.

После этих шагов вы сможете удалить из AVD Manager


0

У меня тоже была эта проблема ... не удалось найти / увидеть папку .android в $ home. Не знаю, спрятано ли оно что ли. Если вы дважды щелкните устройство Android в диспетчере AVD, оно покажет вам путь к «запущенному avd», который находится именно там, где все говорят, что это должно быть. Поскольку я не мог удалить эти файлы с помощью графического интерфейса, я использовал интерфейс командной строки (для этого терминал). Вы можете использовать следующие команды [cd] для изменения каталога [rm -R] для удаления файла. Шаг за шагом:

  1. из терминала cli, который будет выглядеть примерно так:

    nameOfYourMac: ~ MacUser $

  2. тип

    cd .android / avd

    (изменения в каталоге)

    nameOfYourMac: avd MacUser $

  3. Тип

    rm -R nameOfYourVirtualDevice.avd

Очень легко. Теперь вы сможете удалить устройство в AVD Manager Eclipses.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.