2011-06-14 100 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

回答