1). Sprawdź swój Logcat
że nie masz żadnych błędów.
2). Włącz rejestrowanie, aby zobaczyć wszystkie instrukcje SQL, które wykonujesz:
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
Lub przeczytaj to:https://stackoverflow.com/a/19152852/1796309
Lub to:https://stackoverflow.com/a/6057886/1796309
W każdym razie musisz sprawdzić, czy wykonujesz poprawne zapytanie SQL.
3). Jeśli zapytanie jest prawidłowe, ale nadal nie możesz zaktualizować wiersza, musisz to zrobić:
3.1) Przejdź do <android-sdk-dir>/platform-tools
3.2). Upewnij się, że Twoja aktualna kompilacja to Debug
(nie Release
lub otrzymasz komunikat adbd cannot run as root in production builds
).
Chodzi mi o to, że powinieneś uruchomić aplikację za pomocą tego przycisku:
I uruchom kolejne polecenia:
./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/
Następnie będziesz mieć kopię swojej bazy danych SQLite w ~/projects/
katalog.
Otwórz go za pomocą, na przykład tego:http://sqlitebrowser.org/
Spróbuj wykonać zapytanie aktualizacyjne, które możesz uzyskać z Logcat
.
Zobaczysz wszystkie błędy SQL i będziesz mógł je bardzo szybko naprawić.
Powodzenia!