Создание базы данных BlackBerry SQLite: «файловая система не готова» - PullRequest
4 голосов
/ 15 декабря 2010

Мое приложение берет данные с сервера и сохраняет их в базе данных SQLite. Это прекрасно работает в симуляторе 9550 ( BlackBerry Storm 2 ), но когда я запускаю его в любом другом симуляторе, он выдает мне эту ошибку:

файловая система не готова

Фрагмент кода:

URI myURI = URI.create("file:///store/MyDataBase.db");   

Почему это происходит?

Ответы [ 2 ]

23 голосов
/ 15 декабря 2010

Ричард прав.Необходимо проверить наличие в файловой системе корневого «хранилища».Тем не менее, существует дополнительная проблема для использования SQLite. RIM поддерживает только SQLite в eMMC хранилище.Таким образом, даже если «хранилище» существует, оно будет работать только в том случае, если базовым хранилищем является eMMC.В частности, устройство BlackBerry Bold 9650 , AKA Bold2, имеет «хранилище», но это не eMMC, поэтому вы не можете поместить туда базу данных SQLite.

Я не в курселюбой прямой способ выяснить, использует ли файловая система eMMC.Я попросил RIM, и мне сказали проверить размер файловой системы.Если это более 1 ГБ, то это eMMC.Это был не очень удовлетворительный ответ для меня.Я закончил проверку файловой системы "система".Это файловая система только для чтения, но она присутствует только для хранилища eMMC, и, если она существует, вы можете записать базу данных в корень файловой системы «store».

Через обзор руководства разработчика SQLite :

Вы можете использовать API SQLite, предоставляемый в пакете net.rim.device.api.database, для постоянного хранения данных приложения в памяти eMMC или на карте microSD.

5 голосов
/ 15 декабря 2010

Возможно, хранилище не является смонтированным и доступным корневым каталогом файловой системы на 9550. Вы должны использовать javax.microedition.io.file.FileSystemRegistry.listRoots () для получения Перечисления текущих смонтированных файловых систем.

...