Tente reiniciar o servidor Adb.
sudo adb kill-server
e depois
sudo adb start-server
em seguida, conecte o dispositivo. Ative a Depuração e digite
adb devices
Quando eu tento:
$ adb devices
eu recebo o resultado:
List of devices attached
???????????? no permissions
qual é o problema?
tentei em uma máquina Ubuntu 16.04 e funcionou perfeitamente. tentou um dispositivo 7.1.1 e também funcionou perfeitamente.
Tente reiniciar o servidor Adb.
sudo adb kill-server
e depois
sudo adb start-server
em seguida, conecte o dispositivo. Ative a Depuração e digite
adb devices
Teve o mesmo problema. Garantir que o modo USB do dispositivo NÃO apenas o carregamento resolveu-o.
É muito provável que o udev inclua incorretamente o seu dispositivo. Eu também tive esse problema & amp; me deparei com uma solução relativamente simples.
Encontre o seu dispositivo em lsusb
$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp.
Bus 001 Device 002: ID 05c8:03a2 Cheng Uei Precision Industry Co., Ltd (Foxlink)
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Ponto de interesse neste caso:
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Confira o arquivo de dispositivo correspondente
$ ls -l /dev/bus/usb/001/006
Provavelmente você verá algo como
crw-rw-r-- 1 root root 189, 5 Sep 8 21:47 /dev/bus/usb/001/006
Isso significa que o arquivo do dispositivo será de propriedade do usuário root e da raiz do grupo, e é por isso que o adb pode acessá-lo como root, mas não como usuário padrão.
Isso pode ser resolvido criando uma nova regra do udev - eu usei /etc/udev/rules.d/51-android.rules
- para adicionar o dispositivo ao grupo plugdev
, que adb já supõe que você seja um membro de (você deve ser, verifique usando id
)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660",
GROUP="plugdev", SYMLINK+="android%n"
** Lembre-se de substituir o ATTR {idProduct} == "4ee7" pelo seu próprio ID de produto que você encontrou na etapa um. ** (Se o seu fornecedor não é o Google Inc., substitua também o ID do fornecedor pelo de antes do cólon no lsusb).
Agora, basta desconectar o dispositivo e conectá-lo novamente (o udev deve responder automaticamente ao novo arquivo) e tadaa:
$ adb devices
List of devices attached
YC873P0G device
Fonte: Adicionando regras do udev para dispositivos Android de depuração USB - Janos Gyerik
Você precisa fornecer permissão em seu dispositivo Android. Vá para Configurações > Opções do desenvolvedor. Tente desativar a Depuração do Usb e, em seguida, ligue-a novamente. Remova o cabo e reconecte-o. Além disso, tente excluir todas as autorizações salvas das opções do desenvolvedor. Agora, deve solicitar permissão de depuração por meio de um aviso no seu telefone. Aceite isso.
Para expandir a resposta de Sumeet Deshmukh, sua abordagem funciona em geral - se você quiser usar apenas o comando adb
do console.
O Android Studio, no entanto, aparentemente inicia seu próprio servidor adb, matando o nosso. Isso significa que depois de termos matado / iniciado o servidor com o sudo, o Studio o reinicia, o que leva à situação inicial - sem permissões.
A solução é primeiro iniciar o Studio e, em seguida, executar o início / parada do servidor. Ao fazer isso, consegui que meu Nexus 5X aparecesse como um destino de execução válido no Studio.
Esta não é a melhor situação (ter que executar comandos toda vez que você iniciar o Studio), mas isso funciona de maneira rápida e suja. Se eu encontrar uma solução mais permanente, atualizarei esta resposta.
Ele não funcionou para mim depois que eu adicionei o grupo plugdev
e reiniciei a máquina apenas para garantir que a alteração entraria em vigor em todas as minhas sessões de shell. Descobri então que não há nenhum arquivo 51-android.rules
em /etc/udev/rules.d
e tive que fazer o seguinte para corrigir o problema:
# Here the vendor ID is of Google
$ echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0660", GROUP="plugdev"' | sudo tee —append /etc/udev/rules.d/51-android.rules
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
$ sudo udevadm control --reload-rules
$ sudo service udev restart
Eu também tive que desconectar e reconectar meu dispositivo Android.
Mudar o modo USB do Telefone fez o truque para mim. (Eu configurei para Transferência de arquivos .)
A comunidade do GitHub manteve as regras do udev
Esta é a lista de regras do udev mais completa que já vi até agora, ainda mais do que o recomendado atualmente sudo apt-get install android-tools-adb
na documentação oficial , experimente.
Não sei por que isso funciona, mas essa foi a única solução que funcionou para mim
Descubra onde o adb está sendo executado (se você for como eu, você tem várias versões instaladas). Tenha em mente que ferramentas como reagir nativo podem decidir usar outras versões aleatórias para tornar sua vida mais difícil. Para mim é ~/Android/Sdk/platform-tools/adb
. Então eu vou correr:
sudo chown root:YOUR_USERNAME ~/Android/Sdk/platform-tools/adb
sudo chmod 4550 ~/Android/Sdk/platform-tools/adb
As ferramentas do Android são super irritantes.
Vá para Configurações > > Manutenção > > Armazenamento. Em seguida, verifique o menu no canto superior esquerdo e clique em Conexão do computador USB e mude para o dispositivo de mídia (MTP).
Por favor NÃO siga as soluções sugerindo usar sudo
( sudo adb start-server
)! Esta execução adb como root (administrador) e não é suposto a correr assim !!! É uma solução ruim !
Tudo funcionando como root pode fazer qualquer coisa no seu sistema, se criar ou modificar um arquivo pode alterar sua permissão para ser usado apenas pelo root. Mais uma vez, NÃO!
A coisa certa a fazer é configurar seu sistema para que o USUÁRIO tenha a permissão, confira este guia eu escrevi sobre como fazê-lo corretamente.
Tags android android-studio 17.04 adb