1)。 Logcat
を確認してください エラーがないこと。
2)。 ロギングを有効にして、実行しているすべてのSQLステートメントを表示します。
https://gist.github.com/davetrux/9741432
adb shell setprop log.tag.SQLiteLog V
adb shell setprop log.tag.SQLiteStatements V
adb shell stop
adb shell start
またはこれを読んでください:https://stackoverflow.com/a/19152852/1796309
またはこれ:https://stackoverflow.com/a/6057886/1796309
とにかく、正しいSQLクエリを実行していることを確認する必要があります。
3)。 クエリは正常であるが、それでも行を更新できない場合は、次のようにする必要があります。
3.1)<android-sdk-dir>/platform-tools
に移動します
3.2)。現在のビルドがDebug
であることを確認してください (Release
ではありません 、またはメッセージが表示されますadbd cannot run as root in production builds
。
つまり、このボタンからアプリを実行する必要があります:
そして次のコマンドを実行します:
./adb root
./adb shell
run-as com.mycompany.app //<----------- your applicationId from build.gradle
ls -l
drwxrwx--x u0_a88 u0_a88 2016-01-25 15:44 cache
drwx------ u0_a88 u0_a88 2016-01-25 15:25 code_cache
drwxrwx--x u0_a88 u0_a88 2016-01-25 15:44 databases //<----
drwxrwx--x u0_a88 u0_a88 2016-01-25 15:26 files
cd databases/
ls -l
-rw-rw---- u0_a88 u0_a88 172032 2016-01-25 15:45 <your-app>.db
-rw------- u0_a88 u0_a88 33344 2016-01-25 15:45 <your-app>.db-journal
chmod 777 -R <your-app>.db
exit
exit
./adb pull /data/data/<your applicationId from build.gradle>/databases/<your-app>.db ~/projects/
この後、SQLiteデータベースのコピーが~/projects/
にあります。 ディレクトリ。
たとえば、http://sqlitebrowser.org/
を使用して開きます。
Logcat
から取得できる更新クエリを実行してみてください 。
すべてのSQLエラーが表示され、非常に迅速に修正できます。
頑張ってください!