私が試みるとき:
$ adb devices
私は結果を得ます:
List of devices attached
???????????? no permissions
何が問題ですか?
Ubuntu 16.04マシンで試してみましたが、完全に機能しました。7.1.1デバイスを試してみましたが、これも完全に機能しました。
私が試みるとき:
$ adb devices
私は結果を得ます:
List of devices attached
???????????? no permissions
何が問題ですか?
Ubuntu 16.04マシンで試してみましたが、完全に機能しました。7.1.1デバイスを試してみましたが、これも完全に機能しました。
回答:
Adbサーバーを再起動してください。
sudo adb kill-server
その後
sudo adb start-server
次に、デバイスを接続してデバッグをオンにして入力します
adb devices
adb devices
するとデバイスが表示されます(指紋ダイアログが表示されます)。ただし、Android Studioではまだ機能しません。さらに、Android Studioを実行してadb devices
からコンソールから実行すると、「adbサーバーが最新ではありません」と表示され、adbサーバーが再起動します。その後、再び「許可なし」の状況になります。
同じ問題がありました。デバイスのUSBモードが充電されていない ことを確認するだけで解決しました。
udevがデバイスを誤って追加している可能性があります。私もこの問題を抱えており、比較的簡単な解決策に出会いました。
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
この場合の関心点:
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
対応するデバイスファイルをチェックアウトする
$ ls -l /dev/bus/usb/001/006
おそらくあなたは次のようなものを見るでしょう
crw-rw-r-- 1 root root 189, 5 Sep 8 21:47 /dev/bus/usb/001/006
これは、デバイスファイルがユーザールートとグループルートによって所有されることを意味します。そのため、adbは標準ユーザーとしてではなくルートとしてアクセスできます。
これは、新しいudevのルールを作成することによって解決することができます-私は使用/etc/udev/rules.d/51-android.rules
-グループにデバイスを追加するためにplugdev
、すでに自分がメンバーであることを前提としていADB、(あなたが使用してチェックし、可能shoukd id
)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660",
GROUP="plugdev", SYMLINK+="android%n"
** ATTR {idProduct} == "4ee7"をステップ1で見つけた独自の製品IDに置き換えてください。**(ベンダーがGoogle Inc.でない場合は、ベンダーIDもlsusbのコロンの前に置き換えます)。
次に、デバイスのプラグを抜いてから再び接続し(udevが新しいファイルに自動的に応答する)、tadaaを実行します。
$ adb devices
List of devices attached
YC873P0G device
Sumeet Deshmukhの答えを拡張するために、彼のアプローチは一般に機能します- adb
コンソールからのみコマンドを使用したい場合。
ただし、Android Studioは明らかに独自のadbサーバーを起動し、私たちのものを殺します。これは、sudoを使用してサーバーを強制終了/起動した後、Studioが再起動することを意味します。これにより、起動が許可されないという状況になります。
解決策は、最初にStudioを起動してから、サーバーの起動/停止を実行することです。そうすることで、Nexus 5XをStudioで有効な実行ターゲットとして表示することができました。
これは最適な状況ではありません(Studioを起動するたびにコマンドを実行する必要があります)が、迅速かつ汚れた方法でトリックを実行します。より恒久的な解決策を見つけた場合は、この回答を更新します。
()の使用を提案するソリューションには従わないでsudo
くださいsudo adb start-server
!これはルート(管理者)としてadbを実行し、そのように実行することは想定されていません!!! それは悪い回避策です!
ファイルを作成または変更すると、rootでのみ実行されるように権限を変更できる場合、rootとして実行されているすべてのことがシステム内で何でもできます。繰り返しますが、しないでください!
行うには正しいことは、ユーザーが権限を持って作るチェックアウトするようにシステムを設定されているこのガイド私はそれを正しく行うにはどのように書きましたが。
plugdev
グループに自分自身を追加し、マシンを再起動した後、変更がすべてのシェルセッションで有効になることを確認するだけでは、うまくいきませんでした。その後、51-android.rules
ファイルが存在しないことがわかり/etc/udev/rules.d
、問題を解決するために次のことをしなければなりませんでした。
# 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
また、Androidデバイスのプラグを抜き差しする必要がありました。
Androidデバイスで許可を与える必要があります。[設定]> [開発者オプション]に移動します。Usbデバッグをオフにしてから再度オンにしてみてください。ケーブルを取り外して再接続します。また、開発者オプションから保存されているすべての認証を削除してみてください。これで、電話のプロンプトでデバッグ許可を要求するはずです。受け入れ。
M0Rf30/android-udev-rules
GitHubコミュニティはudev-rulesを維持しました
https://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules
これは私が今まで見た中で最も完全なudev-rulesのリストsudo apt-get install android-tools-adb
であり、公式ドキュメントで現在推奨されているものよりもさらに多く、試してみてください。
なぜこれが機能するのか分かりませんが、これが私のために働いた唯一の解決策でした
adbが実行されている場所を見つけます(私のようであれば、複数のバージョンがインストールされています)。反応ネイティブのようなツールは、あなたの人生をより難しくするためにランダムな他のバージョンを使用することを決定するかもしれないことに注意してください。私にとっては~/Android/Sdk/platform-tools/adb
。だから私は実行します:
sudo chown root:YOUR_USERNAME ~/Android/Sdk/platform-tools/adb
sudo chmod 4550 ~/Android/Sdk/platform-tools/adb
Androidツールは非常に迷惑です。
[設定] >> [メンテナンス] >> [ストレージ]に移動します。次に、左上のメニューを確認し、USBコンピューター接続をクリックして、メディアデバイス(MTP)に変更します。
sudo adb devices
。それがうまく機能すれば、メモリから、接続されたデバイスをチェックするためにルートである必要はありませんでした。