Ich verwende ein Samsung Galaxy Nexus-Telefon ( Android 4.0- Plattform).
Ich entwickle Android App unter Ubuntu Linux OS. Ich möchte meine Anwendung direkt auf dem Samsung-Mobilteil ausführen, daher habe ich die folgenden Einrichtungsschritte ausgeführt:
in meiner Projektdatei zum Element
AndroidManifest.xml
hinzugefügtandroid:debuggable="true"
<application>
Auf dem Gerät unter Einstellungen> Sicherheit aktiviert Unbekannte Quellen
Auf dem Gerät wurde unter Einstellungen> Entwickleroptionen das USB-Debugging aktiviert
Erstellen Sie auf meinem Computer die
/etc/udev/rules.d/51-android.rules
Datei mit folgendem Inhalt:SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev"
Führen Sie den
chmod a+r /etc/udev/rules.d/51-android.rules
Befehl auf meinem Computer aus
Dann öffnete ich auf meinem Computer ein Terminal und führte den adb devices
Befehl aus. Ich bekam:
List of devices attached
???????????? no permissions
Da ich mein Gerät nicht gesehen habe, sondern nur ???????????? no permissions
, führe ich die folgenden Befehle aus:
adb kill-server
adb start-server
adb devices
Aber ich habe immer noch:
List of devices attached
???????????? no permissions
Warum? Was vermisse ich?
plugdev
Gruppe befindet.Antworten:
Was für mich funktioniert, ist, den ADB-Server zu töten und erneut zu starten. Unter Linux:
sudo adb kill-server
und dannsudo adb start-server
. Dann erkennt es fast jedes Gerät sofort.quelle
-rwxrwxr-x 1 martin martin 156K 2011-11-09 15:40 adb
. Versuchen Sie, direkt in das Verzeichnis zu wechseln und über "sudo ./adb Geräte" zu starten. Wenn Sie das ohne sudo ausführen können, sollten Sie es mit sudo ausführen können ... Ich bin nicht sicher, was Ihr Problem sein könnte ...adb kill-server
sudo adb start-server
zu überprüfen:adb devices
Nichts hat bei mir funktioniert, bis ich hier endlich die Antwort gefunden habe: http://ptspts.blogspot.co.il/2011/10/how-to-fix-adb-no-permissions-error-on.html
Ich kopiere den Text hier, falls er in Zukunft verschwindet.
Erstellen Sie eine Datei mit dem Namen /tmp/android.rules mit dem folgenden Inhalt (hexadezimale Lieferantennummern wurden von der Lieferantenlistenseite übernommen):
Führen Sie die folgenden Befehle aus:
Trennen Sie das USB-Kabel zwischen dem Telefon und dem Computer.
Schließen Sie das Telefon wieder an.
Führen Sie aus
adb devices
, um zu bestätigen, dass jetzt die Berechtigung zum Zugriff auf das Telefon besteht.Bitte beachten Sie, dass es möglich ist,
, USER="$LOGINNAME"
anstelle von, MODE="0666"
in der.rules
Datei$LOGINNAME
Ihren Anmeldenamen zu ersetzen , dh wasid -nu
gedruckt wird.In einigen Fällen kann es erforderlich sein, der udev-Regeldatei einen Namen zu geben, der kurz vor dem Ende sortiert wird, z
z51-android.rules
.quelle
70-android.rules
wie in diesem Beitrag angegeben: esausilva.com/2010/05/13/… . Ein großes Lob auch dafür, dass Sie uns wissen lassen, dass Sieudev
alle ADB-Prozesse neu starten und beenden müssen. Lief wie am Schnürchen!sudo udevadm control --reload-rules
, um die udev-Regeln zu aktualisieren, wenn ein Neustart des Servers nicht ausreicht.Geben Sie die folgenden Befehle ein:
adb kill-server
sudo ./adb start-server
adb devices
Das Problem ist, dass Sie den ADB-Server nicht als Root ausführen.
quelle
Versucht alles oben, keiner hat funktioniert .. endlich funktioniert, als ich die Verbindung von MTP zu Kamera (PTP) wechselte.
quelle
Es gibt viele schlechte Antworten auf diese Frage, angefangen von der Beharrlichkeit,
adb
alsroot
(die nicht als einzige oder sogar empfohlene Lösung angepriesen werden sollte) bis hin zur Lösung völlig unabhängiger Probleme.Hier ist das kürzeste und universellste Rezept für die gleichzeitige Verwaltung von Berechtigungen für alle
adb
undfastboot
Geräte:Oder Sie könnten eine etwas längere Version verwenden, die ich in diesem Kern gepostet habe .
Was die spezifische Sache betrifft, die OP in seiner Frage falsch gemacht hat - es wurden die
udev
Regeln nach dem Bearbeiten der.rules
Datei nicht neu geladen .Auch OP sagte nicht, welchen Android-Build (auch bekannt als ROM) er auf seinem Handy hatte. Der
idVendor
Wert wird in der Software eingestellt und hängt daher vom ROM ab. Der Wert, den04E8
er in seiner ursprünglichen Regel verwendet hat, hätte also nur für Geräte mit Samsung-Standard-ROMs funktioniert. Dies ist jedoch kein Problem für dieseudev
Regel - sie stimmt mit allen Gerätenadb
oderfastboot
Schnittstellen überein, unabhängig von ihrer VendorID .quelle
In Archlinux kann dies gelegentlich vorkommen. Die Reparatur:
quelle
sudo adb kill-server; sudo adb start-server
hat nicht funktioniert, aber dieser hat es getan.Für diejenigen, die Debian verwenden, funktioniert die Anleitung zum Einrichten eines Geräts unter Ubuntu zum Erstellen der Datei "/etc/udev/rules.d/51-android.rules" nicht. Ich habe die Anweisungen von hier aus befolgt . Schreiben Sie dasselbe hier als Referenz auf.
Bearbeiten Sie diese Datei als Superuser
Suchen Sie den ähnlichen Text
Ändern Sie dann den Modus wie unten beschrieben auf 0666
Dadurch kann adb funktionieren, wir müssen das Gerät jedoch noch so einrichten, dass es erkannt werden kann. Wir müssen diese Datei als Superuser erstellen,
und eintreten
Die obige Zeile ist für HTC. Folgen Sie dem Beitrag von @ grebulon, um eine vollständige Liste zu erhalten.
Speichern Sie die Datei und starten Sie udev als Superuser neu
Schließen Sie das Telefon über USB an und es sollte erkannt werden, wenn Sie ein Projekt kompilieren und ausführen.
quelle
Ich hatte das gleiche Problem, die Lösung ist wie folgt: (Übrigens müssen Sie Ihr Gerät nicht rooten.)
Genießen.
quelle
su
, verwenden Siesudo su
. Ich tat. Und wenn Sie nicht wissen, wie Sie den Benutzer beenden sollen, verwenden Sieexit
.Ich weiß, dass dies etwas spät sein könnte, aber hier ist ein sehr guter Artikel darüber, wie man den Android ADB USB-Treiber manuell hinzufügt. Manuelles Hinzufügen des Android ADB USB-Treibers in Ubuntu 14.04 LTS
Bearbeitet, um Linkinhalte hinzuzufügen
Schritte
Hinweis: Stellen Sie sicher, dass Sie Ihr Android-Gerät im USB-Debugging- Modus angeschlossen haben
Öffnen Sie terminal (
CTRL + ALT + T
) und geben Sie den Befehl ein:lsusb
Jetzt erhalten Sie möglicherweise eine ähnliche Antwort auf diese Frage:
Bus 002 Device 013: ID 283b:1024
Hinweis: In Bezug darauf
Bus 002 Device 008: ID 283b:1024
{idVendor}==”283b” {idProduct}==”1024″
Geben Sie nun den folgenden Befehl ein:
sudo gedit /etc/udev/rules.d/51-android.rules
Dadurch wird die Android-Regeldatei erstellt (
51-android.rules
) oder die vorhandene am angegebenen Speicherort geöffnet (/etc/udev/rules.d
)Fügen Sie dieser Datei eine neue Zeile hinzu:
SUBSYSTEM==”usb”, ATTRS{idVendor}==”283b”, ATTRS{idProduct}==”1024″, MODE=”0666″
Hinweis Bearbeiten
idVendor
&idProduct
Werte mit Ihren Gerätewerten. Speichern und schließen.Geben Sie nun den folgenden Befehl ein:
sudo chmod a+rx /etc/udev/rules.d/51-android.rules
- Lese- / Ausführungsberechtigung erteilensudo service udev restart
- Neustartudev
Dienst neuJetzt müssen wir das hinzufügen
idVendor
zuadb_usb.ini
. Geben Sie die folgenden Befehle ein:cd ~/.android
gedit adb_usb.ini
Fügen Sie den folgenden Wert hinzu
0x283b
Dies ist nichts als 0x (
idVendor
Wert). Ersetzen Sie also den Wert durch. in Bezug auf Ihren Gerätewert Speichern und schließen Sie die Datei.Geben Sie nun den folgenden Befehl ein:
sudo service udev restart
Stecken Sie das Android-Gerät aus und schließen Sie es erneut an.
Geben Sie nun den folgenden Befehl ein:
adb kill-server
adb devices
Los geht's! Ihr Gerät muss aufgelistet sein.
Kopiert von Manuelles Hinzufügen eines Android ADB USB-Treibers in Ubuntu 14.04 LTS
Hat für mich gearbeitet.
quelle
Ich hatte das gleiche Problem mit meinem Galaxy S3. Mein Problem war, dass der
idVendor
Wert04E8
nicht der richtige war. Um das richtige zu finden, verbinden Sie Ihr Smartphone mit dem Computer und führen Sie eslsusb
im Terminal aus. Ihr Smartphone wird folgendermaßen aufgelistet:Der richtige
idVendor
Wert ist also18d1
. Und die Zeile in der/etc/udev/rules.d/51-android.rules
muss sein:Dann renne ich
sudo udevadm control --reload-rules
und alles hat funktioniert!quelle
ATTR{idVendor}=="18d1"
Verwenden Sie die von der
M0Rf30/android-udev-rules
GitHub-Community gepflegten udev-Regelnhttps://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules
Dies ist die vollständigste Liste der udev-Regeln, die ich bisher gesehen habe, sogar mehr als die derzeit
sudo apt-get install android-tools-adb
in der offiziellen Dokumentation empfohlene , und sie hat dieses Problem für mich gelöst.quelle
Ersetzen Sie die Lieferanten-ID von
0bb4
durch18d1
in/etc/udev/rules.d/51-android.rules
Oder fügen Sie eine weitere Zeile hinzu, die lautet:
quelle
Wenn Sie udev neu starten, beenden Sie den ADB-Server und starten Sie den ADB-Server. Gehen Sie zu Android SDK-Installationspfad und erledigen Sie alles auf Sudo. Führen Sie dann ADB-Geräte aus, um das Berechtigungsproblem zu lösen.
quelle
Mein Gerät ist POSITIVO und mein Betriebssystem ist
Ubuntu 14.04 LTS
Also, mein Problem war im VariablennamenIch erstelle die Datei /etc/udev/rules.d/51-android.rules und setze
SUBSYSTEM=="usb", SYSFS{idVendor}=="1662", MODE="0666"
Ich habe das Gerät getrennt und ausgeführt:
danach habe ich das android gerät wieder im entwicklermodus angeschlossen und
quelle
Ohne den Stecker zu ziehen
Bei allen Antworten wird davon ausgegangen, dass Sie das USB-Kabel abziehen und wieder anschließen können. In Situationen, in denen dies nicht möglich ist (z. B. wenn Sie remote sind), können Sie Folgendes tun, um im Wesentlichen das zu tun, was die vorgeschlagenen udev-Regeln beim erneuten Einstecken tun würden:
Suchen Sie das Gerät, das Sie interessiert, z.
Notieren Sie sich die eingeschaltete Busnummer und führen Sie diese aus, z. B. für den Bus
003
:Natürlich ist dies freizügiger als Sie möchten (möglicherweise sind mehr Geräte angeschlossen als nur dieses), aber Sie haben die Idee.
quelle
udev
Regel anzuwenden, ohne das Gerät erneut zu verbinden, verwenden Sie einfach denudevadm trigger --verbose --action=add --subsystem-match=usb
Befehl.Sie sollten den
adb
Server NICHT als root ausführen, wie andere Antworten vorschlagen. Wenn Sie stattdessen Arch Linux verwenden, gehen Sie wie folgt vor:android-udev
Paket mit PacmanLaden Sie die udev-Regeln neu:
Fügen Sie sich der
adbusers
Gruppe hinzu und melden Sie sich ab und an:Quelle: https://wiki.archlinux.org/index.php/android#Configuring_adb
quelle
Versuchen Sie, anstatt
GROUP="plugdev"
die Hauptgruppe Ihres Benutzers zu verwenden.quelle
In meinem Fall unter Ubuntu 12.04 LTS musste ich meinen HTC Incredible USB-Modus von Laden auf Medien ändern, und dann wurde das Gerät unter ADB angezeigt. In beiden Fällen war das Debuggen natürlich bereits aktiviert.
quelle
Bitte folgen
sudo
Sie NICHT den Lösungsvorschlägen (sudo adb start-server
)! Dies führt adb als root (Administrator) aus und es soll 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 sich ihre Berechtigung ändern, nur von root verwendet zu werden. Wieder nicht!
Das Richtige ist, Ihr System so einzurichten, dass der BENUTZER die Berechtigung hat. Lesen Sie diese Anleitung, die ich geschrieben habe, wie man es richtig macht.
quelle
Ich hatte das gleiche Problem und habe die folgenden Schritte ausgeführt:
Die obigen Schritte werden auf android-udev-Regeln beschrieben . Es hat bei mir funktioniert.
Stellen Sie einfach sicher, dass Sie das Dialogfeld bestätigen, das nach dem erneuten Einstecken auf dem Bildschirm Ihres Telefons angezeigt wird.
quelle
Ich habe su benutzt und es fing an zu funktionieren. Wenn ich Jetbrains mit normalen Benutzern verwende, wird dieses Problem angezeigt. Nach dem Neustart von Jetbrains im su-Modus kann ich mein Gerät sehen, ohne etwas zu tun.
Ich benutze Ubuntu 13.04 und Jetbrains 12.1.4
quelle
Sie könnten auch versuchen Bearbeitung adb_usb.ini Datei, an sich /home/username/.android/ . Diese Datei enthält eine Liste der Geräte, mit denen Sie eine Verbindung herstellen möchten. Sie fügen einfach den ID-Anbieter Ihres Geräts in einer neuen Zeile hinzu (es ist eine ID pro Zeile). Starten Sie dann den ADB-Server neu und schließen Sie Ihr Gerät erneut an.
Es hat bei mir unter Ubuntu 12.10 funktioniert.
quelle
Wie auch immer, was ich getan habe, um dieses Problem zu lösen (unter Ubuntu ).
Definiert, in welchen Fällen ich diese Befehle ausführen muss. Für die meisten Ubuntu-Benutzer gibt es einen Home-Ordner (versteckte Datei
.bashrc
).In dem Sie den Start dieser Befehle aufzeichnen können. Diese Befehle werden jedoch ausgelöst, wenn Sie den
bash
Befehl in die Konsole eingeben .Da ich eine Shell .zshrc habe, habe ich folgendes gemacht:
offene Konsole:
gedit .zshrc
Fügen Sie beim Öffnen der Datei die folgende Zeile hinzu:
Nach oder vor müssen wir diese Datei erstellen:
.add_device_permissions.sh
in die wir Folgendes schreiben:Außerdem müssen wir .permissions_redmi_note erstellen, in der wir unser Passwort fest codieren müssen.
.zshrc
unnötig zu ergänzen, können wir den Pfad beim Starten des Systems selbst angeben:Startup Applications Preferences
Wo wir auf "Hinzufügen" klicken und unseren Befehl schreiben:
/home/vadimm/.add_device_permissions.sh
./adb devices ./adb kill-server sudo ./adb devices ./adb kill-server ./adb devices
quelle
Wenn jemand bei der Verwendung die folgende Fehlermeldung erhält
adb devices
Führen Sie Folgendes aus
Das hat das Problem für mich auf einem benutzerdefinierten Android-Gerät behoben
quelle