Android-指定路径创建 SQLite
来源:互联网 发布:迅雷端口被屏蔽 编辑:程序博客网 时间:2024/06/04 19:07
前言
今天大佬让我把创建的数据库存储路径改为 SD 下,自信满满低改了结果崩溃,在此记录一下。
正文
我们创建数据库一般就是集成 SQLiteHelper ,在构造方法把 DB_NAME
传进入,就会默认在 data/data/<`package_name>/database/ 下创建,在里面的文件也相对有安全性,删除应用的时候也会一起删除掉。但是总会遇到不同的需求场景。然后今天我就躺了一下小坑。
找了一下很简单能找到 openOrCreateDatabase(…)这个方法,可以在指定路径下创建,就连 SQLiteHelper 本身也是调用他的,只不过把路径写死了。
然后我尝试了一下:
String path = Environment.getExternalStorageDirectory().getAbsolutePath()+"/AAA/aaa.db";SQLiteDatabasemDb = SQLiteDatabase.openOrCreateDatabase(path ,null);
满心欢喜,结果,哎呀,报错了:
SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
然后一想,没加权限。手动滑稽
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
结果还是报同一个错误。
墙外翻了翻,结果发现,这样子就成功了:
String path = Environment.getExternalStorageDirectory().getAbsolutePath()+"/AAA"; File pathFile = new File(path); File file = new File(path+"/aa.db"); try{ if(!pathFile.exists()){ pathFile.mkdir(); } if(!file.exists()){ file.createNewFile(); } } catch (IOException e) { e.printStackTrace(); } mDb = SQLiteDatabase.openOrCreateDatabase(s,null);
也就是说调用 openOrCreateDatabase 时候,该路径下文件不存在的时候,不会默认帮我们创建,所以打不开数据库,因为没有这个数据库,只要手动创建了文件,然后就没问题了。
阅读全文
0 0
- Android-指定路径创建 SQLite
- 创建指定路径文件
- Android SQLite的创建
- android 创建sqlite 数据库
- android sqlite 数据库创建
- android sqlite创建数据库
- android sqlite 数据库创建
- android Sqlite 数据库创建
- Android:自定义Sqlite数据库路径
- android sqlite 创建数据库和表到安装路径下的 Helper类
- android指定数据库的路径
- Android 读取指定路径文件
- android指定数据库的路径
- 在指定路径创建空数据库
- VC++创建指定路径的一系列文件夹
- java 文件创建路径指定的问题
- JavaScript根据指定路径创建对象
- android sqlite 一次创建多个表
- react-native-splash-screen--RN 0.5以上报错集合
- OpenInventor实现三维模型的拖动
- myeclipse安装后需要修改的配置
- 天津讨债要债公司联系13125821917联系13125821917,不成功不收费不成功不收费
- 爱壁纸的简单批量下载--Python
- Android-指定路径创建 SQLite
- Laravel5.5源码详解 -- 中间件MiddleWare分析
- AI编程员系统多次迭代自主编程,首次完爆初级程序员
- 使用 Spring Data JPA 简化 JPA 开发
- 【EasyUI】输入框box、linkbutton、menubutton、提示控件
- ⚔疯狂输出⚔ 类中的String的用法
- Apache Commons Text示例
- Jupyter Notebook
- android的特殊文字与Titanic的特效