Nie można usunąć urządzenia wirtualnego z Eclipse, Android

141

Mam wiele urządzeń wirtualnych, niektórych z nich nie można usunąć.

Komunikat o błędzie to

Wirtualne urządzenie Android XXX działa obecnie w emulatorze i nie można go usunąć

kiedy właśnie zrestartowałem Ubuntu i tylko uruchomiłem Eclipse.

Co jest nie tak
źródło
1
Jak próbujesz usunąć?
EnthuDeveloper
Mogę wygodnie usuwać i dodawać pliki z Eclipse. Daj mi znać, jak próbujesz go usunąć.
EnthuDeveloper
Jeśli emulator jest uruchomiony i jeśli próbujesz usunąć aktualnie działający emulator, nie zostanie on usunięty. Zanim usuniesz urządzenie wirtualne, zamknij wszystkie uruchomione emulatory
Karthi
2
Emulator nie działa tak jak wspomniałem, przynajmniej ja go nie uruchomiłem. Próbuję usunąć go z Eclipse AVD Manager! To platforma 4.0. Specjalnie zrestartowałem Ubuntu, aby zabić wszystkie procesy, ponieważ nie znalazłem żadnego ... Wygląda na to, że to tylko problem platformy Android 4.0.
whatswrong
W tej chwili ten sam problem dotyczy Android Studio.
Jono,

Odpowiedzi:

290

W systemie Linux / * nix i OSX:

  1. Znajdź folder .android w swoim $HOMEkatalogu.
  2. W .android powinien znajdować się folder avd
  3. W folderze avd powinien znajdować się jeden lub wiele plików .ini i odpowiadający mu folder urządzenia wirtualnego * .avd .
  4. Usuń zarówno plik .ini , jak ifolder .avd, którego chcesz się pozbyć.
  5. Wróć do menedżera SDK i AVD systemu Android.

Mam nadzieję, że to pomoże...

Uttam
źródło
40
Działa tak samo dla OSX. W terminalu Idź do ~ / .android / avd /, a następnie usuń pliki <avd name> .ini i <avd name> .avd. Po odświeżeniu listy w oknie Android Virtual Devices ADV zniknie.
JosephL
3
i założę się, że działa również w przypadku okien. Zgadnij, struktura SDK Androida jest wszędzie taka sama :) tylko kwestia ścieżek.
nuala
Dzięki JosephL. Czy możesz wyjaśnić, ścieżka, którą pokazuje po dwukrotnym kliknięciu naszego utworzonego przeze mnie .avd, może być nawigowana tylko przez terminal. Ale jeśli spróbuję przejść przez wyszukiwarkę -> / Users / home /, nie mogę zobaczyć /.android/avd. dlaczego ?
maja
Jeśli zajrzysz do katalogu ~ / .android / avd / <avd-name> .avd, zobaczysz kilka plików z rozszerzeniem .lock. Możesz je usunąć, a następnie będziesz mógł korzystać z aplikacji menedżera urządzeń wirtualnych.
BJV
Jeśli podczas próby powrotu do menedżera AVD pojawi się błąd informujący, że coś takiego jak lokalizacja zestawu SDK nie zostało ustawione, daj obszar roboczy czas na załadowanie. Postępowałem zgodnie z powyższym i otrzymałem tę wiadomość, zajęło trochę czasu, zanim zorientowałem się, że po prostu przeskakiwałem zbyt szybko, aby wrócić do AVD
nPn
25

W katalogu /home/.android/[twoj telefon] .avd czasami pozostają pliki * .lock. Może to być spowodowane nieoczekiwanym zakończeniem działania emulatora. AVDM nie zajmuje się tym. Ręczne usunięcie folderu urządzenia lub zastąpienie go rozwiązuje problem.

Przed próbą usunięcia urządzenia wirtualnego w AVDM. Usuń wszystkie pliki * .lock z odpowiednich /home/.android/[ your device] .avd fodlers. Będziesz wtedy mógł usunąć bez wyskakującego okienka „Urządzenie XXX jest obecnie uruchomione”.

jaro
źródło
Pierwotnym powodem, dla którego próbowałem usunąć, było to, że nie mogłem go uruchomić, z bardzo nie wyjaśniającym błędem. Więc dla mnie to najlepsza odpowiedź.
shalafi
19

Alternatywne i znacznie prostsze rozwiązanie, które działa z poziomu menedżera AVD.

W menedżerze AVD kliknij przycisk Nowy. Ustaw nazwę jako nazwę urządzenia, którego nie możesz zamknąć, wybierz dowolne ustawienia i zaznacz pole Zastąp istniejące AVD o tej samej nazwie.

To zabije stary i nadpisze nowym. Nowy nie działa, więc można go usunąć.

Jonny White
źródło
6

Szukałem kodu java i ten błąd naprawdę oznacza, że ​​masz uruchomione AVD ... Czy próbowałeś kill'em wszystkich za pomocą top lub htop (co jest o wiele lepsze).

    // 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;
Quentin DOMMERC
źródło
z htop możesz wyszukiwać za pomocą f3, wyszukaj coś takiego jak emulator :)
Quentin DOMMERC
Jeszcze bardziej interesujący byłby fragment kodu pokazujący, w jaki sposób avdInfo.isRunning()podejmowane są decyzje. (Prawdopodobnie pokazuje, że folder avd jest skanowany w poszukiwaniu plików * .lock.)
Risadinha,
1

Z Findera (OSX) LUB Eksploratora katalogów (Linux i Windows)

  1. Znajdź folder .android [Folder ukryty] w katalogu $ HOME. Pokaż / ukryj foldery w systemie Mac
  2. W .android powinien znajdować się folder [Twoje urządzenie] .avd
  3. Znajdź pliki * .lock i usuń je w folderze [Your Device] .avd

Z Android Studio

  1. Otwórz Menedżera AVD
  2. Wybierz urządzenie wirtualne, które chcesz usunąć
  3. Kliknij strzałkę w dół na końcu i wybierz [Pokaż na dysku], otworzy się katalog
  4. Znajdź pliki * .lock i usuń je w folderze [Your Device] .avd

Po tych krokach pozwoli ci to usunąć z AVD Manager

Shan Xeeshi
źródło
0

Miałem również ten problem ... nie mogłem znaleźć / zobaczyć folderu .android w $ home. Nie wiem, czy jest ukryty, czy co. Dwukrotne kliknięcie urządzenia z systemem Android w menedżerze AVD spowoduje wyświetlenie ścieżki „uruchomionego avd”, czyli dokładnie tam, gdzie wszyscy mówią, że powinno być. Ponieważ nie mogłem usunąć tych plików za pomocą GUI, użyłem CLI (do tego terminala). Możesz użyć następujących poleceń [cd] do zmiany katalogu [rm -R] w celu usunięcia pliku. Krok po kroku:

  1. z terminalu cli, który będzie wyglądał mniej więcej tak:

    nameOfYourMac: ~ MacUser $

  2. rodzaj

    cd .android / avd

    (zmiany katalogu)

    nameOfYourMac: avd MacUser $

  3. Rodzaj

    rm -R nazwaOfYourVirtualDevice.avd

Całkiem proste. Teraz powinno być możliwe usunięcie urządzenia w programie Eclipses AVD Manager.

user2506891
źródło