2013-11-20 2 views
0

Ive создал приложение, которое хранит данные входа пользователя в базу данных sqlite. Однако, когда я пытаюсь получить доступ к нему с помощью Root Explorer, я получаю сообщение об ошибке.Не удалось получить доступ к базе данных sqlite Android

Произошла ошибка при открытии базы данных. ошибка диска (код 3850) :, при компиляции: выберите * из sqlite_master, где введите in ('table', 'view') порядок по имени.

Приложение работает нормально, и оно хранит информацию для входа в систему по мере необходимости. Однако я не могу получить доступ к нему в корневом проводнике?

Любые предложения?

ответ

1

пожалуйста вызывает эту функцию:

public static void copyDataBase(Context mActivity) throws IOException { 
     InputStream myInput = new FileInputStream(new File("/data/data/" 
       + mActivity.getPackageName() + "/databases/" + "yourdb.sqlite")); 
     File files = new File("/sdcard/files/"); 
     files.mkdirs(); 
     String outFileName = "/sdcard/files/your.sqlite"; 
     OutputStream myOutput = new FileOutputStream(outFileName); 
     byte[] buffer = new byte[1024]; 
     int bufferLength; 
     while ((bufferLength = myInput.read(buffer)) > 0) { 
      myOutput.write(buffer, 0, bufferLength); 
     } 
     myOutput.flush(); 
     myOutput.close(); 
     myInput.close(); 
    } 

баз данных копируются /sdcard/files/your.sqlite этот путь.

+0

Не создана ли папка файлов на SD-карте? – PropK

+0

Вы решили свою проблему или нет? Эта функция является вызовом при запуске вашего приложения. – dipali

+0

этот метод правильно работает в моем проекте. Что это за проблема? – dipali

0

Вы можете добавить кнопку в свое приложение, чтобы просмотреть информацию о базе данных или написать информацию о базе данных в файл во внешнем хранилище.

В противном случае, возможно, вам необходимо укрепить ваше устройство для доступа к базе данных.

0

Просто дайте права доступа для всех пользователей в файл [YOUR_DB] .db-журнал

Для меня это сработало.

Смежные вопросы