ADB は Linux ターミナルでは動作しますが、Android Studio では動作しません

ADB は Linux ターミナルでは動作しますが、Android Studio では動作しません

Android Studio 内の Android エミュレータでアプリケーションを実行しようとしました。エミュレータは動作しますが、エミュレータで apk を実行するとエラーが発生します。

Installation did not succeed.
The application could not be installed.
Installation failed due to: 'device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.'

adb devicesAndroid Studioのターミナルでadbをチェックするとエラーが発生します

List of devices attached
adb server is out of date.  killing...
cannot bind 'tcp:5037': Address already in use
ADB server didn't ACK
* failed to start daemon *
error: 
error: 

しかし、このコマンドは標準端末では正常に動作します。

入力してみました adb kill-serverが、役に立ちませんでした。

私のOSはLinux Mint 18.1、Android Studioのバージョンは3.5.1です

答え1

root としてログインし、ファイルを作成して/etc/udev/rules.d/51-android.rules次のような行を追加し、plugdev グループ内のすべてのユーザーに権限を付与します。

SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"

この例では、ベンダー ID は samsung です。デバイスのベンダー ID を使用する必要があります。これは、lsusb次のような行を実行して検索することで取得できます。

Bus 002 Device 009: ID 048e:9e18

この例では、ベンダー ID は 048e なので、0bb4 を 2a47 に置き換える必要があります。正しい行は次のようになります。

SUBSYSTEM=="usb", ATTR{idVendor}=="2a47", MODE="0666", GROUP="plugdev"

次に、ファイルに読み取り権限を割り当て、udev をリロードし、adb デーモンをリロードします。

sudo chmod a+r /etc/udev/rules.d/51-android.rules
sudo udevadm control --reload-rules
adb kill-server
adb start-server

関連情報