あなたが抱えている問題は一般的であり、ドキュメントでは十分に説明されていません。通常のデバイスには sqlite3 データベース バイナリが含まれていないため、エラーが発生します。Android エミュレータ、OSX、Linux (インストールされている場合)、および Windows (インストール後) にはバイナリがあるため、マシンでローカルにデータベースを開くことができます。
回避策は、データベースをデバイスからローカル マシンにコピーすることです。これは ADB で実現できますが、いくつかの手順が必要です。
開始する前に、次の情報が必要です。
- SDK のパス (OS 環境に含まれていない場合)
<package name>
たとえば、com.example.application
- a
<local path>
データベースを配置します。~/Desktop
また%userprofile%\Desktop
次に、以下の例の最初の文字に各コマンドが書き込まれる端末を理解する必要があります。
>
=あなたのOSコマンドプロンプト
$
= ADB シェル コマンド プロンプト
!
= 管理コマンド プロンプトとしての ADB シェル
%
次に、ターミナルまたはコマンドから次のコマンドを入力します (最初の文字またはテキストを に入力しないでください()
) 。
> adb shell
$ su
! cp /data/data/<package name>/Databases/<database name> /sdcard
! exit
$ exit
> adb pull /sdcard/<database name> <local path>
> sqlite3 <local db path>
% .dump
% .exit (to exit sqldb)
これは、データベースをローカル マシンにコピーし、ローカルでデータベースを読み取るための非常に簡単な方法です。エミュレーターから sqlite3 バイナリーをデバイスにインストールする方法を説明する SO およびその他のリソースがありますが、一度だけアクセスすると、このプロセスが機能します。
データベースにインタラクティブにアクセスする必要がある場合は、(既に sqlite3 がインストールされている) エミュレーターでアプリを実行するか、デバイス /xbin path に sqlite をインストールすることをお勧めします。