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.


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...


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”.


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ąć.


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;

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


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.