1). Kontrollera din Logcat
att du inte har några fel.
2). Aktivera loggning för att se alla SQL-satser, vilket du gör:
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
Eller läs detta:https://stackoverflow.com/a/19152852/1796309
Eller detta:https://stackoverflow.com/a/6057886/1796309
Hur som helst, du måste kontrollera att du gör korrekt SQL-fråga.
3). Om din fråga är bra, men du fortfarande inte kan uppdatera din rad, måste du göra så här:
3.1) Gå till <android-sdk-dir>/platform-tools
3.2). Se till att din nuvarande version är Debug
(inte Release
, eller så får du meddelandet adbd cannot run as root in production builds
).
Jag menar att du bör köra din app via den här knappen:
Och kör nästa kommandon:
./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/
Efter detta kommer du att ha en kopia av din SQLite-databas i ~/projects/
katalog.
Öppna den med till exempel detta:http://sqlitebrowser.org/
Försök att köra uppdateringsfrågan, som du kan få från Logcat
.
Du kommer att se alla SQL-fel och du kommer att kunna fixa det mycket snabbt.
Lycka till!