Não é possível excluir o dispositivo virtual do Eclipse, android

141

Eu tenho vários dispositivos virtuais, alguns deles não podem ser excluídos.

Mensagem de erro é

O dispositivo virtual android XXX está atualmente em execução em um emulador e não pode ser excluído

quando acabei de reiniciar o Ubuntu e só iniciei o Eclipse.

o que há de errado
fonte
1
Como você está tentando excluir?
EnthuDeveloper 2/11/11
Consigo excluir e adicionar do Eclipse confortavelmente. Deixe-me saber como você está tentando excluí-lo.
EnthuDeveloper 2/11/11
Se o emulador estiver em execução e se você estiver tentando excluir o emulador atualmente em execução, ele não será excluído. Antes de excluir o dispositivo virtual, feche todo o emulador em execução
Karthi
2
O emulador não está funcionando como mencionei, pelo menos não o executei. Estou tentando removê-lo do Eclipse AVD Manager! É a plataforma 4.0. Eu reiniciei o Ubuntu especialmente para matar todos os processos, porque não encontrei nenhum. Parece que é apenas o problema da plataforma Android 4.0.
whatswrong
O mesmo problema para o Android Studio no momento.
Jono

Respostas:

290

No Linux / * nix e OSX:

  1. Encontre a pasta .android no seu $HOMEdiretório.
  2. Em .android deve haver uma pasta avd
  3. Na pasta avd, deve haver um ou vários arquivos .ini e uma pasta de dispositivo virtual * .avd correspondente .
  4. Exclua o arquivo .ini e opasta .avd da qual você deseja se livrar.
  5. Volte para o Android sdk e AVD manager.

Eu espero que isso ajude...

Uttam
fonte
40
Funciona da mesma maneira para o OSX. No terminal, vá para ~ / .android / avd / e exclua os arquivos <avd name> .ini e <avd name> .avd. Quando você atualiza a lista na janela Dispositivos virtuais do Android, o ADV desaparece.
JosephL
3
e aposto que também funciona para janelas. Acho que a estrutura do SDK do Android está em todos os lugares da mesma maneira :) apenas uma questão de caminhos.
Nuala 03/04
Graças JosephL. Você pode explicar, o caminho que mostra se clicarmos duas vezes em nosso arquivo .avd que criei só pode ser navegado pelo terminal. Mas se eu tentar passar pelo localizador -> / Users / home /, não consigo ver /.android/avd. por que é que ?
Maio
Se você procurar no diretório ~ / .android / avd / <avd-name> .avd, verá vários arquivos com a extensão .lock. Você pode excluí-los e poderá usar o aplicativo gerenciador de dispositivos virtuais.
BJV
Se, ao tentar retornar ao gerenciamento do AVD, ocorrer um erro dizendo que algo como o local do SDK não foi definido, dê tempo ao espaço de trabalho para carregar. Segui o exposto acima e recebi esta mensagem, demorou um pouco para descobrir que eu estava pulando rápido demais para voltar ao AVD
nPn
25

Às vezes, na pasta /home/.android/[seu dispositivo] .avd são deixados para trás arquivos * .lock. Isso pode ocorrer devido ao encerramento inesperado do emulador. O AVDM não lida com isso. Excluir manualmente uma pasta de dispositivo ou substituí-la resolve o problema.

Antes de tentar excluir um dispositivo virtual no AVDM. Remova todos os arquivos * .lock dos /home/.android/[seus dispositivos] .avd correspondentes. Você poderá excluir sem o pop-up 'o dispositivo XXX está em execução'.

jaro
fonte
A razão original pela qual tentei excluir foi que não consegui iniciá-lo, com um erro muito não explicativo. Então, para mim, esta é a melhor resposta.
shalafi
19

Uma solução alternativa e muito mais simples que funciona com o gerenciador AVD.

No gerenciador do AVD, clique no botão Novo. Defina o nome como o nome do dispositivo que você não pode fechar, escolha as configurações e marque a caixa que diz Substituir o AVD existente com o mesmo nome.

Isso matará o antigo e substituirá o novo. O novo não está sendo executado e pode ser excluído.

Jonny White
fonte
6

Eu estive procurando o código java e esse erro realmente significa que você tem um AVD em execução ... Você já tentou matar todos eles com top ou htop (que é muito melhor).

    // 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
fonte
com htop, você pode pesquisar com F3 busca algo como emulador :)
Quentin DOMMERC
O trecho de código ainda mais interessante seria o que mostra como avdInfo.isRunning()é decidido. (Provavelmente mostra que a pasta avd é digitalizado para arquivos .Lock *.)
Risadinha
1

No Finder (OSX) OU no Directory Explorer (Linux e Windows)

  1. Encontre a pasta .android [Pasta oculta] no seu diretório $ HOME. Mostrar / ocultar pastas no MAC
  2. No .android, deve haver uma pasta .avd [Your Device]
  3. Encontre arquivos * .lock e exclua dentro da pasta [Your Device] .avd

Do Android Studio

  1. Abra o AVD Manager
  2. Selecione o dispositivo virtual que você deseja excluir
  3. Clique na seta para baixo no final e selecione [Mostrar no disco], ele abrirá o diretório
  4. Encontre arquivos * .lock e exclua dentro da pasta [Your Device] .avd

Após estas etapas, você poderá excluir do AVD Manager

Shan Xeeshi
fonte
0

Eu também tive esse problema .. não foi possível encontrar / ver a pasta .android em $ home. Não sei se está oculto ou o quê. Se você clicar duas vezes em um dispositivo Android no gerenciador do AVD, ele mostrará o caminho do "running avd", que é exatamente onde todos dizem que deveria estar. Como não pude excluir esses arquivos usando a GUI, usei a CLI (terminal para fazer isso). Você pode utilizar os seguintes comandos [cd] para alterar o diretório [rm -R] para remover um arquivo. Passo a passo:

  1. do terminal cli, que será algo como isto:

    nameOfYourMac: ~ MacUser $

  2. tipo

    cd .android / avd

    (mudanças de diretório)

    nameOfYourMac: avd MacUser $

  3. Tipo

    rm -R nameOfYourVirtualDevice.avd

Bem fácil. Agora você deve poder excluir o dispositivo no AVD Manager da Eclipses.

user2506891
fonte