2013-06-18 4 views
1

У меня есть приложение, которое хранит некоторые данные в локальном файле базы данных sqlite. На одном из моих устройств время от времени попытка чтения этих данных приводит к диалогу «Недопустимый путь к файлу».Недопустимый путь к файлу в базе данных

код я использовал в SQLiteHelper установить путь к файлу базы данных:

static String getEnvironmentPath() { 
    if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { 
     return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "custom.db"; 
    } else { 
     return "custom.db"; 
    } 
} 

На самом деле, I'm даже не уверен, что это недопустимый путь_к_файлу всплывающее окно показывается из базы данных, я получаю эту ошибку только на чтение некоторых данные из базы данных время от времени на одном из моих устройств.

Первоначально предполагалось, что мой случай похож на How to open pdf file in package path in android?, но как получается, что в том же файле базы данных 75% данных считываются штрафом, а 25% причиной этой ошибки и только на одном устройстве?

Что может быть неправильным?

Спасибо!

+0

Что такое цель другого случая? Вы проверяли, не происходит ли ошибка при выполнении части else? –

+0

база данных создается просто отлично в противном случае, я проверил ее – Roman

+0

Почему вы не используете SQLiteOpenHelper? – vkinra

ответ

0

Невероятно, но факт - удаление Adobe Reader из устройства решить эту проблему! Я сохраняю новости в своем приложении, а некоторые из них содержат флеш-видео в html, поэтому Adobe Player попытался открыть их и вызвал ошибку «Недопустимый путь».

0

Надеюсь, вы предоставили разрешения в файле манифеста.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

Кроме того, я не уверен, что getExternalStoragePublicDirectory (...) дает вам правильный путь. Просто отладить и проверить, если вы получаете путь

/data/data/com.example.program/databases/xxx.db or not ! 
Смежные вопросы