Wenn ich versuche:
$ adb devices
Ich bekomme das Ergebnis:
List of devices attached
???????????? no permissions
worin besteht das Problem?
auf einem Ubuntu 16.04 Rechner ausprobiert und es hat einwandfrei funktioniert. habe ein 7.1.1 Gerät ausprobiert und es hat auch einwandfrei funktioniert.
android
17.04
android-studio
adb
Nadav Tasher
quelle
quelle
sudo adb devices
. Wenn das großartig funktioniert, aber aus dem Speicher muss ich nicht root sein, um nach angeschlossenen Geräten zu suchen.Antworten:
Versuchen Sie, den Adb-Server neu zu starten.
und dann
Schließen Sie dann Ihr Gerät an, schalten Sie Debugging ein und geben Sie ein
quelle
adb devices
zeigt das Ausführen tatsächlich jetzt das Gerät an (und ich erhalte den Fingerabdruck-Dialog). Es funktioniert jedoch immer noch nicht mit Android Studio. Außerdemadb devices
bekomme ich , wenn ich android studio und dann von einer Konsole aus starte, einen "adb server is out of date" und der adb server wird neu gestartet. Danach komme ich wieder zur Situation "keine Berechtigungen".Hatte das gleiche Problem. Wenn Sie sicherstellen, dass der USB-Modus des Geräts NICHT aufgeladen wird, ist das Problem behoben.
quelle
Sehr wahrscheinlich fügt udev Ihr Gerät falsch hinzu. Auch ich hatte dieses Problem und bin auf eine relativ einfache Lösung gestoßen.
Finden Sie Ihr Gerät in lsusb
Punkt von Interesse in diesem Fall:
Checken Sie die entsprechende Gerätedatei aus
Wahrscheinlich werden Sie so etwas sehen
Dies bedeutet, dass die Gerätedatei dem Benutzer root und der Gruppe root gehört, weshalb adb als root, aber nicht als Standardbenutzer darauf zugreifen kann.
Dies kann durch die Schaffung einer neuen udev - Regel gelöst werden - ich verwendet
/etc/udev/rules.d/51-android.rules
- um das Gerät zu der Gruppe hinzuzufügenplugdev
, die adb bereits voraus , dass Sie ein Mitglied sein (Sie shoukd sein, überprüfen Sie mitid
)** Denken Sie daran, das ATTR {idProduct} == "4ee7" durch Ihre eigene Produkt-ID zu ersetzen, die Sie in Schritt 1 ermittelt haben. ** (Wenn Ihr Anbieter nicht Google Inc. ist, ersetzen Sie auch die Anbieter-ID durch die vor dem Doppelpunkt in lsusb).
Jetzt einfach das Gerät ausstecken und wieder einstecken (udev sollte automatisch auf die neue Datei reagieren) und tadaa:
Quelle: Hinzufügen von udev-Regeln für das USB-Debugging von Android-Geräten - Janos Gyerik
quelle
Um die Antwort von Sumeet Deshmukh zu erweitern, funktioniert sein Ansatz im Allgemeinen - wenn Sie nur den
adb
Befehl von der Konsole aus verwenden möchten .Android Studio startet jedoch anscheinend einen eigenen AdB-Server und bringt unseren um. Das heißt, nachdem wir den Server mit sudo beendet / gestartet haben, startet Studio ihn neu, was zur Ausgangssituation führt - keine Berechtigungen.
Die Lösung besteht darin, zuerst Studio zu starten und dann den Start / Stopp des Servers durchzuführen. Auf diese Weise habe ich es geschafft, dass mein Nexus 5X als gültiges Ausführungsziel in Studio angezeigt wird.
Dies ist nicht die beste Situation (bei jedem Start von Studio müssen Befehle ausgeführt werden), aber sie erledigt den Trick schnell und schmutzig. Wenn ich eine dauerhaftere Lösung finde, werde ich diese Antwort aktualisieren.
quelle
Das Ändern des USB-Modus vom Telefon aus hat mir geholfen. (Ich habe es auf Dateiübertragung eingestellt .)
quelle
Bitte NICHT den Lösungsvorschlägen folgen
sudo
(sudo adb start-server
)! Dies führe adb als root (Administrator) aus und es sollte NICHT so laufen !!! Es ist eine schlechte Problemumgehung !Alles, was als root ausgeführt wird, kann alles in Ihrem System tun. Wenn eine Datei erstellt oder geändert wird, kann die Berechtigung geändert werden, nur von root verwendet zu werden. Wieder NICHT!
Das Richtige zu tun ist Ihr System so einrichten , um den Benutzer die Erlaubnis machen Besuche dieses Handbuch i geschrieben, wie man es richtig zu machen.
quelle
Es hat bei mir nicht funktioniert, nachdem ich mich der
plugdev
Gruppe hinzugefügt und den Computer neu gestartet habe, um sicherzustellen, dass die Änderung in allen meinen Shell-Sitzungen wirksam wird. Ich fand dann, dass es keine51-android.rules
Akte innen gibt/etc/udev/rules.d
und musste das folgende tun, um das Problem zu regeln:Ich musste auch mein Android-Gerät aus- und wieder einstecken.
quelle
Sie müssen auf Ihrem Android-Gerät eine Berechtigung angeben. Gehen Sie zu Einstellungen> Entwickleroptionen. Schalten Sie das USB-Debugging aus und wieder ein. Entfernen Sie das Kabel und schließen Sie es wieder an. Versuchen Sie auch, alle gespeicherten Berechtigungen aus den Entwickleroptionen zu löschen. Es sollte nun über eine Eingabeaufforderung auf Ihrem Telefon nach dem Debuggen gefragt werden. Akzeptieren.
quelle
M0Rf30/android-udev-rules
Die GitHub Community hat die udev-Regeln beibehaltenhttps://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules
Dies ist die vollständigste udev-Regelliste, die ich bisher gesehen habe. Probieren Sie es aus, sogar mehr als die derzeit
sudo apt-get install android-tools-adb
in der offiziellen Dokumentation empfohlenen .quelle
Ich habe keine Ahnung, warum dies funktioniert, aber dies war die einzige Lösung, die für mich funktioniert hat
Finde heraus, wo adb läuft (wenn du wie ich bist, hast du mehrere Versionen installiert). Denken Sie daran, dass Tools wie Eingeborenes Reagieren möglicherweise andere zufällige Versionen verwenden, um Ihr Leben zu erschweren. Für mich ist es
~/Android/Sdk/platform-tools/adb
. Also werde ich laufen:Android-Tools sind super nervig.
quelle
Gehen Sie zu Einstellungen >> Wartung >> Speicher. Überprüfen Sie dann das Menü oben links und klicken Sie auf USB-Computerverbindung. Wechseln Sie dann zu Mediengerät (MTP).
quelle