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 грешки и ще можете да ги поправите много бързо.
Успех!