在使用SQLiteDatabase.openOrCreateDatabase()函数时 出现Failed to open the database错误,致使数据库打不开。
Filef=context.getDatabasePath("downlog.db");
db=SQLiteDatabase.openOrCreateDatabase(FullPath,null);怀疑是不是因为data/data/xx/databases文件夹不存在所以创建不了数据库,
修改后的代码
File f=context.getDatabasePath("downlog.db").getParentFile();
if(f.exists()==false)f.mkdirs();//注意是mkdirs()有个s 这样可以创建多重目录。
FullPath=f.getPath()+"/downlog.db";
db=SQLiteDatabase.openOrCreateDatabase(FullPath,null);数据库可以正确创建了,这个问题解决了。
不过总觉得有点蹊跷,为什么openOrCreateDatabase(FullPath,null);不会自己创建文件夹呢……
函数不是在activity中使用的,是在service中调用DBHelper类,DBHelper的构造函数中调用的。不知道是不是这个原因。
本文讨论了在Service中使用SQLiteDatabase.openOrCreateDatabase()函数时遇到的Failed to open the database错误,并提供了修改代码路径的方法来解决此问题。通过在调用前创建必要的文件夹,数据库成功被创建并打开。
640

被折叠的 条评论
为什么被折叠?



