微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

黑莓-无法创建SQLite数据库

如何解决黑莓-无法创建SQLite数据库

| 我正在制作一个后台运行并在设备启动时启动的应用程序。 我已经阅读了文档,并从RIM获得了sqliteDemo文件,并且正在使用它们尝试在模拟器中的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);
在这文章中,我为took3ѭ和
DatabaseFactory.openorCreate
取出了
try/catch
。 那么,谁能告诉我为什么我不能在模拟器上创建数据库? 如果我加载它并进入媒体,则可以手动创建一个文件夹。 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;
    }     
}
但是它只会s6ѭ,而不会
sdcard/
。 有人可以帮忙吗? 谢谢。     

解决方法

        仅供参考 我想我解决了这个问题。 问题是我试图在启动过程中写入存储,但是存储尚未准备好。一旦加载了设备/模拟器,并触发了我的一些侦听器,便创建了数据库。 看这里: http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/832062/How_To_-_Write_safe_initialization_code.html?nodeid=1487426&vernum=0     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。