2011-06-14 97 views
0

我正在製作一個在後臺運行的應用程序,並在設備啓動時啓動。 我已閱讀文檔,並從RIM獲得SQLiteDemo文件,我正在使用它們嘗試在模擬器中的SD卡上創建數據庫。Blackberry - 無法創建SQLite數據庫

不幸的是,我得到這個錯誤: 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/catchURI.createDatabaseFactory.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/。 任何人都可以幫忙嗎? 謝謝。

+0

它發生在我身上,在模擬器上運行我的程序時,它找不到SD卡,但如果現在不關閉模擬器再次運行它,它會發現它和運行好。 – Cesar 2011-06-14 12:00:44

回答