在使用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的构造函数中调用的。不知道是不是这个原因。