Blackberry - Невозможно создать базу данных SQLite - PullRequest
0 голосов
/ 14 июня 2011

Я делаю приложение, которое работает в фоновом режиме и запускается при загрузке устройства.Я прочитал документы и получил файлы SQLiteDemo от RIM, и я использую их для создания базы данных на моей SD-карте в симуляторе.

К сожалению, я получаю эту ошибку: DatabasePathException:Invalid path name. Path does not contains a proper root list. See FileSystemRegistry class for details.

Вот мой код:

public static Database storeDB;
public static final String  DATABASE_NAME    = "testDB";
private String DATABASE_LOCATION = "file:///SDCard/Databases/MyDBFolder/";
public static URI dbURI;
dbURI = URI.create(DATABASE_LOCATION+DATABASE_NAME);
storeDB = DatabaseFactory.openOrCreate(dbURI);

Я взял try/catch для URI.create и DatabaseFactory.openOrCreate для целей этого поста.

Итак, кто угодноскажите мне, почему я не могу создать базу данных на моем симуляторе?

Если я загружу ее и перейду на носитель, я могу создать папку вручную.SD-карта указывает на папку на моем жестком диске, и если я создаю там папку, она также отображается на симуляторе, поэтому я могу создавать папки, но не программно.

Кроме того, у меня естьпопробовал это из документации разработчика:

// Determine if an SDCard is present 
boolean sdCardPresent = false;
String root = null;
Enumeration enum = FileSystemRegistry.listRoots();
while (enum.hasMoreElements())
{
    root = (String)enum.nextElement();
    System.err.println("root="+root);
    if(root.equalsIgnoreCase("sdcard/"))
    {
        sdCardPresent = true;
    }     
}

Но он только поднимает store/ и никогда sdcard/.Кто-нибудь может помочь?Спасибо.

1 Ответ

0 голосов
/ 14 июня 2011

FYI, Я думаю, что я решил это.

Проблема была в том, что я пытался записать в хранилище во время загрузки, но хранилище не было готово. После загрузки устройства / симулятора и запуска нескольких моих слушателей БД была создана.

Смотрите здесь: http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/832062/How_To_-_Write_safe_initialization_code.html?nodeid=1487426&vernum=0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...