Ich habe dieses Problem;Android Nougat - Kontakte Schema falsch
ContentProvider (contacts) - no such column: metadata_dirty
Mein Telefon ist Lager, nicht verwurzelt, HTC 10.
Ich versuche, es zu lösen.
Option 1 scheint Telefon zu sein, sqlite3 zu installieren und eine alter table-Abfrage auszuführen.
Bevor ich mein Telefon nicht root, ging ich für Option 2 (ich rate möglich); Nehmen Sie die Template-App und ändern Sie sie, um die alter table-Abfrage einmal auszuführen.
Und das ist, wo ich stecke - wie man zu der RAW Kontakte-Datenbank ohne die Handler, die keine ALTER TABLE-Funktionalität zu bieten scheinen zu bekommen?
Vielen Dank für das Feedback zu diesem. Ich vermutete, dass eine Backup-App mein Kontaktlistenschema bei einer Wiederherstellung durchbrochen hat. Wie auch immer, das Einrichten des Telefons ging, konfigurieren, wiederherstellen und dann upgraden, also sollte dies nicht geschehen sein. Wenn die Backup-App nicht direkt in die Datenbank schreiben kann, wie ist das Telefon in diesen Zustand geraten? –
@ user3800535: Schlägt mich. Ihre Abhilfe besteht darin, eine explizite Spaltenliste bereitzustellen. Irgendwie ist der 'ContactContract'-Anbieter nicht mit seiner Datenbankstruktur synchronisiert. Die Standardspaltenliste enthält diese mythische 'metadata_dirty' Spalte. Wenn Sie diese Spalte (und alle anderen fehlenden) einfach vermeiden, sollte Ihr Code funktionieren. – CommonsWare