Impossible de supprimer le périphérique virtuel d'Eclipse, Android

141

J'ai plusieurs appareils virtuels, certains d'entre eux ne peuvent pas être supprimés.

Le message d'erreur est

L'appareil virtuel Android XXX est actuellement en cours d'exécution dans un émulateur et ne peut pas être supprimé

quand je viens de redémarrer Ubuntu et que je n'ai démarré qu'Eclipse.

Qu'est-ce qui ne va pas
la source
1
Comment essayez-vous de supprimer ??
EnthuDeveloper
Je suis en mesure de supprimer et d'ajouter confortablement à partir d'Eclipse. Faites-moi savoir comment vous essayez de le supprimer.
EnthuDeveloper
Si l'émulateur est en cours d'exécution et si vous essayez de supprimer l'émulateur en cours d'exécution, il ne sera pas supprimé. Avant de supprimer le périphérique virtuel, fermez tous les émulateurs en cours d'exécution
Karthi
2
L'émulateur ne fonctionne pas comme je l'ai mentionné, du moins je ne l'ai pas exécuté. J'essaye de le supprimer d'Eclipse AVD Manager! C'est la plateforme 4.0. J'ai spécialement redémarré Ubuntu pour tuer tous les processus, car je n'en ai trouvé aucun. Il semble que ce soit uniquement le problème de la plate-forme Android 4.0.
whatswrong
Même problème pour Android Studio pour le moment.
Jono

Réponses:

290

Sous Linux / * nix et OSX:

  1. Recherchez le dossier .android dans votre $HOMErépertoire.
  2. Dans .android, il devrait y avoir un dossier avd
  3. Le dossier avd doit contenir un ou plusieurs fichiers .ini et un dossier de périphérique virtuel * .avd correspondant .
  4. Supprimez à la fois le fichier .ini et ledossier .avd dont vous souhaitez vous débarrasser.
  5. Revenez au gestionnaire Android sdk et AVD.

J'espère que ça aide...

Uttam
la source
40
Fonctionne de la même manière pour OSX. Dans le terminal Allez dans ~ / .android / avd / puis supprimez les fichiers <avd name> .ini et <avd name> .avd. Lorsque vous actualisez la liste dans la fenêtre des appareils virtuels Android, l'ADV disparaîtra.
JosephL
3
et je parie que cela fonctionne aussi pour les fenêtres. Je suppose que la structure du SDK d'Android est partout la même :) juste une question de chemins.
nuala
Merci JosephL. Pouvez-vous s'il vous plaît expliquer, le chemin qu'il montre si nous double-cliquons sur notre .avd que j'ai créé ne peut être que naviguer dans le terminal. Mais si j'essaye de passer par finder -> / Users / home / je ne peux pas voir /.android/avd. pourquoi donc ?
mai
Si vous regardez dans le répertoire ~ / .android / avd / <avd-name> .avd, vous verrez plusieurs fichiers avec l'extension .lock. Vous pouvez les supprimer et vous pourrez ensuite utiliser l'application de gestionnaire de périphériques virtuels.
BJV
Si lorsque vous essayez de revenir à la gestion AVD, vous obtenez une erreur indiquant que l'emplacement du SDK n'a pas été défini, laissez à l'espace de travail le temps de se charger. J'ai suivi ce qui précède et j'ai reçu ce message, il a fallu un certain temps pour comprendre que je
sautais
25

Dans le dossier /home/.android/[votre appareil] .avd sont parfois laissés derrière des fichiers * .lock. Cela peut être dû à une interruption inattendue de l'émulateur. AVDM ne s'occupe pas de cela. La suppression manuelle d'un dossier de périphérique ou son remplacement résout le problème.

Avant d'essayer de supprimer un appareil virtuel dans AVDM. Supprimez tous les fichiers * .lock des fodlers /home/.android/[votre appareil] .avd correspondants. Vous serez alors en mesure de supprimer sans la fenêtre contextuelle «l'appareil XXX est en cours d'exécution».

Jaro
la source
La raison initiale pour laquelle j'ai essayé de supprimer était que je ne pouvais pas le démarrer, avec une erreur très non explicative. Donc, pour moi, c'est la meilleure réponse.
shalafi
19

Une solution alternative et beaucoup plus simple qui fonctionne à partir du gestionnaire AVD.

Dans le gestionnaire AVD, cliquez sur le bouton Nouveau. Définissez le nom comme le nom de l'appareil que vous ne pouvez pas fermer, choisissez les paramètres et cochez la case qui dit Remplacer l'AVD existant avec le même nom.

Cela tuera l'ancien et l'écrasera par le nouveau. Le nouveau n'est pas en cours d'exécution et peut donc être supprimé.

Jonny White
la source
6

J'ai cherché le code java et cette erreur signifie vraiment que vous avez un AVD en cours d'exécution ... Avez-vous essayé de les tuer tous avec top ou htop (ce qui est bien mieux).

    // 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
la source
avec htop, vous pouvez rechercher avec f3 search quelque chose comme émulateur :)
Quentin DOMMERC
L'extrait de code encore plus intéressant serait celui montrant comment avdInfo.isRunning()est décidé. (Cela montre probablement que le dossier avd est scanné pour les fichiers * .lock.)
Risadinha
1

Depuis Finder (OSX) OU Directory Explorer (Linux et Windows)

  1. Recherchez le dossier .android [Dossier caché] dans votre répertoire $ HOME. Afficher / masquer les dossiers sur MAC
  2. Dans .android, il devrait y avoir un dossier [Votre appareil] .avd
  3. Recherchez les fichiers * .lock et supprimez-les dans le dossier [Votre appareil] .avd

Depuis Android Studio

  1. Ouvrez AVD Manager
  2. Sélectionnez le périphérique virtuel que vous souhaitez supprimer
  3. Cliquez sur la flèche vers le bas à la fin et sélectionnez [Afficher sur le disque], il ouvrira le répertoire
  4. Recherchez les fichiers * .lock et supprimez-les dans le dossier [Votre appareil] .avd

Après ces étapes, il vous permettra de supprimer d'AVD Manager

Shan Xeeshi
la source
0

J'ai eu ce problème aussi .. je n'ai pas pu trouver / voir le dossier .android dans $ home. Je ne sais pas si c'est caché ou quoi. Si vous double-cliquez sur un appareil Android dans le gestionnaire AVD, il vous montrera le chemin du "running avd" qui est exactement là où tout le monde dit qu'il devrait être. Comme je ne pouvais pas supprimer ces fichiers à l'aide de l'interface graphique, j'ai utilisé CLI (terminal pour le faire). Vous pouvez utiliser les commandes suivantes [cd] pour changer de répertoire [rm -R] afin de supprimer un fichier. Pas à pas:

  1. depuis le terminal cli qui ressemblera à ceci:

    nameOfYourMac: ~ MacUser $

  2. type

    cd .android / avd

    (changements de répertoire)

    nameOfYourMac: avd MacUser $

  3. Type

    rm -R nameOfYourVirtualDevice.avd

Plutôt facile. Vous devriez maintenant pouvoir supprimer l'appareil dans AVD Manager d'Eclipses.

user2506891
la source