忘備録

日々の調べ物をまとめる。アウトプットする。基本自分用。

Android 実機デバッグ はまったこと

adbにて実機にアクセス時に「error: more than one device/emulator」

環境:

原因:接続デバイスが複数ある状態で接続先の指定をしていない

対応:接続先を指定する

# エラー。。。
$ adb shell
error: more than one device/emulator
# 例.デバイス” YT910ZJFHR”にアクセス
$ adb -s YT910ZJFHR shell
shell@SO-02G:/ $ 
# 補足.接続デバイスの確認方法
$ adb devices
List of devices attached
emulator-5554  device
YT910ZJFHR  device

参考:複数のAndroid端末をUSBで接続しているときのadbコマンドTips | dreamin'up4u

adbshellにて、実機のDBファイルにアクセスする際に「opendir failed, Permission denied」

環境:

対応:アプリのユーザーに切り替える

# Permission deniedとなってしまう。。。
shell@SO-02G:/data/data/{パッケージ名}/databases $ ls                    
opendir failed, Permission denied
# run-as コマンドでアプリのユーザに切り替える
shell@SO-02G:/data/data/{パッケージ名}/databases $ run-as {パッケージ名}
shell@SO-02G:/data/data/{パッケージ名} $
# ファイル参照権限があるためエラーなし
shell@SO-02G:/data/data/jp.ne.i_as.sec/databases $ ls
db
db-journal

参考:[Android]実機のSQLiteへアクセスできないときの暫定回避策 | Developers.IO