私は別のアプリケーションのデータベースにアクセスし、それが(ROOTを使用して)コンソールに内容の印刷しようとしているが、私はこの応答を取得しています何らかの理由でいます:エラー:不完全なSQL:LS
E/[Error]: Error: incomplete SQL: ls
E/[Error]: exit
Iドンなぜこれが起こっているのか本当に分かりません。私はエスケープ引用符で私の構文を入れようとしました、私は他のsqliteコマンドを試しましたが、それは正常に動作していないようです。
私はデータベースにアクセスし、ADBを使用して同じパスでADBを使用してコンテンツを印刷できます。アプリケーションのボタンを押すと、ルートアクセスが必要なので、2つは問題ではありません。
マイダウン易しく書き直さコード:誰かが私が間違ってやっている
onCreate
RunWithRoot
private void RunWithRoot(String textView) {
try {
String line;
Process process = Runtime.getRuntime().exec(textView);
OutputStream stdin = process.getOutputStream();
InputStream stderr = process.getErrorStream();
InputStream stdout = process.getInputStream();
stdin.write(("ls\n").getBytes());
stdin.write("exit\n".getBytes());
stdin.flush();
stdin.close();
BufferedReader br =
new BufferedReader(new InputStreamReader(stdout));
while ((line = br.readLine()) != null) {
Log.d("[Output]", line);
}
br.close();
br =
new BufferedReader(new InputStreamReader(stderr));
while ((line = br.readLine()) != null) {
Log.e("[Error]", line);
}
br.close();
process.waitFor();
process.destroy();
} catch (Exception ex) {
}
}
を知っていますか?私はAndroid開発には非常に新しく、さらに根っこになっています。誰かがこれで正しい方向に私を投げることができるなら、それは非常に高く評価されるだろう。
PS:このアプリは、個人的な使用のためになりますので、私はなど、人々がルートを持っている場合、またはパスが存在するかどうかをチェックする必要はありません..私はすでにあわや
なぜあなたは 'stdin.write((" ls \ n ")。getBytes());'を実行していますか? –
@ScaryWombat私は本当に盲目です。ありがとうございました!しかし、それは言う: "データベースを開くことができません" data/data/app.pkge/databases/Database.db ":データベースファイルを開くことができません" –
パスは正しいですか? –