Android sqlite unknown error (code 14): Could not open database
来源:互联网 发布:360卸载找不到软件 编辑:程序博客网 时间:2024/05/20 02:26
在调用SQLiteDatabase类的静态方法openOrCreateDatabase时传入的路径参数必须为绝对路径。
这与Activity/ContextThemeWrapper类的openOrCreateDatabase不同。
例如:在外置存储读写的权限
这与Activity/ContextThemeWrapper类的openOrCreateDatabase不同。
后者中传入的路径参数为文件名.db,其默认存放在/data/data/包名/databases下,而前者则必须指定绝对路径,若像后者那样直接传入文件名,不仅不能直接保存在/data/data/包名/databases下,还会被理解为直接在根目录保存文件而引发异常。
//直接保存在默认内置存储内 //用Activity.openOrCreateDatabase实现 SQLiteDatabase database; database=MainActivity.this.openOrCreateDatabase("data.db",MODE_PRIVATE,null); //直接保存在默认内置存储内 //用SQLiteDatabase.openOrCreateDatabase实现 SQLiteDatabase database; String dirPath="/data/data/"+MainActivity.this.getPackageName()+"/databases/"; database=SQLiteDatabase.openOrCreateDatabase(dirPath+"data.db",null); //直接保存在外置存储内 //用SQLiteDatabase.openOrCreateDatabase实现 SQLiteDatabase database; String dirPath=Environment.getExternalStorageDirectory().getAbsolutePath()+“/aaa/”; //判断外置存储状态 if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) database=SQLiteDatabase.openOrCreateDatabase(dirPath+"data.db",null);注意:用SQLiteDatabase.openOrCreateDatabase创建数据库前,如果数据库文件.db是存储在未创建的目录下,仍要新建目录,否则也会抛出异常Could not open database
//dirPath是文件夹路径名,不包含文件名,如/storage/emulated/0/aaa String dirPath=Environment.getExternalStorageDirectory().getAbsolutePath()+“/aaa/”; File dir=new File(dirPath); if(!dir.exists()) dir.mkdirs(); SQLiteDatabase database=SQLiteDatabase.openOrCreateDatabase(dirPath+"data.db",null);最后确保AndroidManifest.xml相关权限的填写
例如:在外置存储读写的权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
阅读全文
0 0
- Android sqlite unknown error (code 14): Could not open database
- unknown error (Sqlite code 14): Could not open database解决方案
- android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open
- android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open dat
- unknown error (Sqlite code 14): Could not open database, (OS error
- unknown error (code 14): Could not open database
- android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (Sqlite code 14): Could not o
- android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code
- not an error (code 0): Could not open the database in read/write mode.的解决办法
- SQLiteException: not an error (code 0): Could not open the database in read/write mode
- Error 1402. Could not open key UNKNOWN\Components\ DA42BC89BF25F5BD0AF18C3B9B1A1EE8
- android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file (code 14)
- android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file (code 14)
- Could not open CRS database
- android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed
- android.database.sqlite.SQLiteException: near "where": syntax error (code 1): ,
- Error 1402. Could not open key UNKNOWN\Components\.... Verify that you have sufficient access to tha
- SQLITE Error inserting 或者 android.database.sqlite.SQLiteConstraintException: error code 19
- ReactJS学习笔记七:表单
- CF
- 高可用方案之脑裂问题探讨(原创)
- C语言编写一个电话本
- 粗糙集约简
- Android sqlite unknown error (code 14): Could not open database
- Centos7 上安装mysql遇上的问题:mysql无法正常启动
- 详解aapt使用,破解包名 ,apk包名
- 4-13 折半查找 (15分)
- Android Studio和eclipse混淆打包总结
- 最大公约数及最小公倍数
- C++实验6
- QWidget居中显示
- N个数的全排列