Как я могу получить доступ к своей базе данных Sqlite после изменения имени пакета в Android? - PullRequest
2 голосов
/ 01 декабря 2010

Чтобы опубликовать свое приложение для Android, мне пришлось изменить имя пакета на com.example.project, который я использовал во время разработки. Хотя после того, как я изменил имя пакета, я больше не могу получить доступ к базе данных sqlite. Я попытался получить доступ к нему через .adb, и он работает со старым именем пакета, но не с новым.

Как я могу получить доступ к БД, чтобы поместить ее в новый пакет? У меня есть копия старого неизмененного файла проекта.

Большое спасибо! AK

1 Ответ

3 голосов
/ 01 декабря 2010

Это на эмуляторе или телефоне?Если вы разрабатываете на телефоне и создали нужную вам БД:

  • Если телефон рутирован - используйте файловый менеджер (или файловый менеджер представлений DDMS) и получите его из /data/data/com.example.prackage/databases и поместите его в папку с новым пакетом.

  • Если телефон не рутирован - если у вас есть оригинальный код пакета, создайте сценарий резервного копирования, чтобы скопировать файл sqlite изпапка /data/data/com.example.prackage/databases - вам также нужно знать имя файла БД.Затем в новом пакете создайте обратную код, чтобы скопировать файл с SDCard в папку БД новых пакетов.

  • Если на эмуляторе - использовать проводник файлов представлений DDMS, чтобы получитьфайл из папки базы данных.

Эта ссылка может помочь с резервным копированием и восстановлением:

Резервное копирование / восстановление Sqlite на SDCard

ОБНОВЛЕНИЕ

Один метод, использующий файловый менеджер DDMS

  1. Перейдите к data / data / com.old.package / database
  2. Выберите файл базы данных
  3. Нажмите на дискету со стрелкой (в правом верхнем углу проводника файлов)
  4. Сохраните файл где вы знаете.
  5. Перейдите к данным /data / com.new.package / database
  6. Нажмите на телефон со стрелкой.
  7. Найдите только что сохраненный файл.

Это должно скопировать БДв новый пакет, чтобы вы могли использовать его, как и раньше.

Выше приведен графический интерфейс для использования adb из командной строкиt скопировать файл БД из старого пакета в новый, что-то вроде:

adb pull /data/data/com.example.package/databases C:\tempdb

Это должно сделать копию старой БД, затем:

adb push C:\tempdb /data/data/com.example.package/databases

...