1). Kiểm tra Logcat
của bạn rằng bạn không có bất kỳ lỗi nào.
2). Bật ghi nhật ký để xem tất cả các câu lệnh SQL mà bạn đang thực hiện:
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
Hoặc đọc cái này:https://stackoverflow.com/a/19152852/1796309
Hoặc cái này:https://stackoverflow.com/a/6057886/1796309
Dù sao, bạn cần kiểm tra xem bạn có đang thực hiện đúng truy vấn SQL hay không.
3). Nếu truy vấn của bạn tốt, nhưng bạn vẫn không thể cập nhật hàng của mình, bạn cần thực hiện việc này:
3.1) Truy cập <android-sdk-dir>/platform-tools
3.2). Đảm bảo rằng bản dựng hiện tại của bạn là Debug
(không phải Release
hoặc bạn sẽ nhận được thông báo adbd cannot run as root in production builds
).
Ý tôi là bạn nên chạy ứng dụng của mình thông qua nút này:
Và chạy các lệnh tiếp theo:
./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/
Sau đó, bạn sẽ có bản sao của cơ sở dữ liệu SQLite của mình trong ~/projects/
thư mục.
Mở nó bằng cách sử dụng, ví dụ như sau:http://sqlitebrowser.org/
Cố gắng thực hiện truy vấn cập nhật mà bạn có thể lấy từ Logcat
.
Bạn sẽ thấy tất cả các lỗi SQL và bạn sẽ có thể sửa nó rất nhanh.
Chúc các bạn thành công!