Ошибка копирования базы данных в Android при запуске программы на эмуляторе - PullRequest
4 голосов
/ 13 ноября 2011

Я написал простое приложение для Android, которое использует базу данных sqlite, которая находится в папке "assets".Я использовал класс DataHelper, который DB_PATH инициализируется следующим образом:

 private static String DB_PATH = "/data/data/program.proverb/databases/";

Когда я пытаюсь запустить его на Galaxy S, он работает нормально, но когда я пытаюсь запустить его на эмуляторепоказывает следующую ошибку:

11-13 19:20:31.302: ERROR/AndroidRuntime(289): FATAL EXCEPTION: main
11-13 19:20:31.302: ERROR/AndroidRuntime(289): java.lang.Error: Error copying database

Не могли бы вы помочь мне решить эту проблему, чтобы она работала и на эмуляторе?

1 Ответ

6 голосов
/ 13 ноября 2011
try
{
   copyDataBase();
} 
catch (IOException e)
{
      throw new Error("Error copying database");
}

Ваш ответ находится внутри IOException. Вам нужно записать трассировку стека, или вместо «Ошибка», сгенерировать это:

throw new RuntimeException(e);

Android захватит исключение и зарегистрирует его для вас. Это должно сказать вам, по крайней мере, с чего начать.

Есть два вероятных кандидата.

1) База данных не существует в папке ресурсов (или ее имя немного неверно). 2) У вас неверный путь к папке с вашей программой.

...