编写人:誉barbar
在需要打开数据库文件时,可能会遇到Caused by: android.database.SQLite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database这类错误提示,如下图:
一开始,本人以为是文件地址写错了。但是使用data_file.exists()来检测(data_file的对象是数据库文件),发现文件的路径是没问题的。那就是问题不出在路径上。
从网上找到的解决方法有两种:
1)在AndroidManifest.xml文件里增加权限
2)把sd卡下的数据库删掉,再重新导入。
然而这些方法依旧无法解决这个问题。经过几天的研究,终于研究出了解决的方法(没想到,最后还是得靠自己)。
在确认代码没问题的前提下,进入Gradle Scripts下的build.gradle(Module:app)文件进行相关的修改。如图
要修改的地方有三个,分别是 compileSdkVersion 、targetSdkVersion和dependencies
函数
excel方差函数excelsd函数已知函数 2 f x m x mx m 2 1 4 2拉格朗日函数pdf函数公式下载
。
首先是修改dependencies函数里的compile’com.android support:appcompat-v7:23.0.0’(你的不一定是这个,但是在你工程新建完成后,一定会有这段代码,只是数字可能是其他的)。将这个代码改成compile’com.android support:appcompat-v7:22.2.1’(这段代码不能直接复制我的,最好手打,因为上标的
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
不一定适用于软件)。如图:
然后将compileSdkVersion 和targetSdkVersion的值相应改成21。
接着将工程文件里apk文件夹里的生成的.apk文件和调试文件删掉(说白了。就是将apk文件夹里的文件都删掉)。并且将模拟器中的 该应用 卸载掉。然后再重新生成应用文件,这时你就会发现could not open。。。这个错误没有了,可以读得到数据库里面的内容了。
如果只改了compileSdkVersion 和targetSdkVersion的值,没有修改dependencies函数,或者只是修改了dependencies函数,没有修改compileSdkVersion 和targetSdkVersion的值,当你删除apk文件夹里的文件和模拟器里面的该软件后,再次编译生成时,就会报错。如图:
上图属于只修改compileSdkVersion 和targetSdkVersion的值,没有修改dependencies函数。