Копия базы данных SQLite выглядит испорченной при генерации устройством, а не эмулятором - PullRequest
2 голосов
/ 11 сентября 2011

Сначала я хочу сказать спасибо всем, кто это читает.Stackoverflow - это удивительный сайт, и вы, ребята, каждый день помогаете мне с ответами в форме уже заданных вопросов.Вы все молодцы!

Моя проблема:

Я работаю над приложением базы данных, которое я хотел бы сделать резервную копию базы данных в определенных точках, чтобы я мог сохранить данные, которые я собралв базе данных с течением времени, в процессе разработки.Поэтому, чтобы сохранить базу данных в доступной памяти, я следовал за этой страницей:

Как я могу вытащить базы данных с моего андроида на рабочий стол?

.. и вышекод отлично работает в эмуляторе (я могу использовать DDMS, чтобы вытащить копию базы данных на мой компьютер и просмотреть ее с помощью браузера баз данных SQLite).Однако когда я запускаю его на реальном устройстве, SQLite Database Browser не может его прочитать.Чтобы экстраполировать, копия создается просто отлично на SD-карте, но когда я копирую на свой компьютер со своего устройства и просматриваю его, я ничего не получаю, SDB не может понять это или что-то еще.Однако, когда я использую эмулятор, я могу скопировать его с помощью DDMS и просмотреть все таблицы с SDB.

Использование WinMerge для сравнения двух необработанных файлов базы данных (один сгенерированный устройством, другой сгенерированныйоба эмулятора работают с одним и тем же кодом) Я вижу, что есть различия в форматировании, но ничто не выглядит испорченным, но я не уверен на 100%.Похоже, что там есть метаданные android и таблицы последовательности SQL (хотя и в разном порядке), а также моя пользовательская таблица.

У вас, ребята, есть какие-либо предложения по отладке этого?Я не уверен, с чего начать, так как кажется, что он отлично работает на эмуляторе.Кроме того, я запускал эмулятор на том же выпуске Android (2.3.3), что и на устройстве, поэтому я почти уверен , что они используют тот же движок SQLite.

СпасибоМэтт

1 Ответ

1 голос
/ 11 сентября 2011

Я бы попробовал открыть эту базу данных с разными SQLite клиентами .

Если это не сработает, следующим шагом может стать поиск SQLite файла базы данных валидатора и / или запуск стандартного клиента SQLite в режиме отладки (но, если честно, я не даже не знаю, возможны ли эти два последних варианта).

...