
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 devices
Android 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