unknown error (Sqlite code 14): Could not open database解决方案
来源:互联网 发布:淘宝宝贝详情视频代码 编辑:程序博客网 时间:2024/05/20 04:30
今天在运行之前一个项目是突然一运行就崩溃,感觉甚是奇怪,查看log日志发现:
Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (Sqlite code 14): Could not open database, (OS error - 13:Permission denied)
根据日志提示好像是缺少权限,因为项目只用到了存储,然后去查看AndroidManifest.xml中的权限,发现
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
这两条权限都在呀,这是怎么回事呢,百度了下都说是权限未添加。最后突然想到我这台手机是Android6.0的系统,然后为了验证,找了一台4.0系统的运行,直接就运行起来了,好了这下找到问题了就好解决了。
Android6.0以后出现了很多权限即使在AndroidManifest.xml中配置了也不行,必须手动请求,或者在设置-应用-权限打开对应的权限。
在6.0系统以后使用有些权限是可以进行这样的操作:
public static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
/**
* 验证读取sd卡的权限
*
* @param activity
*/
public boolean verifyStoragePermissions(Activity activity) {
/*******below android 6.0*******/
if (Build.VERSION.SDK_INT < 23) {
return true;
}
int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE);
if (permission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE);
return false;
} else {
return true;
}
Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (Sqlite code 14): Could not open database, (OS error - 13:Permission denied)
根据日志提示好像是缺少权限,因为项目只用到了存储,然后去查看AndroidManifest.xml中的权限,发现
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
这两条权限都在呀,这是怎么回事呢,百度了下都说是权限未添加。最后突然想到我这台手机是Android6.0的系统,然后为了验证,找了一台4.0系统的运行,直接就运行起来了,好了这下找到问题了就好解决了。
Android6.0以后出现了很多权限即使在AndroidManifest.xml中配置了也不行,必须手动请求,或者在设置-应用-权限打开对应的权限。
在6.0系统以后使用有些权限是可以进行这样的操作:
public static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
/**
* 验证读取sd卡的权限
*
* @param activity
*/
public boolean verifyStoragePermissions(Activity activity) {
/*******below android 6.0*******/
if (Build.VERSION.SDK_INT < 23) {
return true;
}
int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE);
if (permission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE);
return false;
} else {
return true;
}
}
在调用请求权限的Activity中重写
/**
* 请求权限回调
*
* @param requestCode
* @param permissions
* @param grantResults
*/
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_EXTERNAL_STORAGE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
showToast("授权成功");
} else {
showToast("授权失败,请去设置打开权限");
}
}
}
0 0
- unknown error (Sqlite code 14): Could not open database解决方案
- Android sqlite unknown error (code 14): Could not open database
- unknown error (Sqlite code 14): Could not open database, (OS error
- 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 (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
- Could not open CRS database
- Error 1402. Could not open key UNKNOWN\Components\.... Verify that you have sufficient access to tha
- android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file (code 14)
- android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file (code 14)
- VM:Could not open virtual machine解决方案
- Error: could not open `C:\Java\jre7\lib\amd64\jvm.cfg'的解决方案
- error:could not open ...jvm.cfg
- soap消息拦截器SOAPHandler【handler-chain.xml】
- 15天学redis
- linux下svn不能连接上windows服务器:SSL handshake failed: SSL 错误:在证书中检测到违规的密钥用法
- Ant 基础
- 使用portal实现个人工作台
- unknown error (Sqlite code 14): Could not open database解决方案
- iOS中的MAX(A,B)
- GridView批量删除、全选 + TreeView+复选框
- java中的使用JDBC出错:ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
- VS自定义控件
- HTML5与CSS3实现动态网页(笔记)
- 树节点查询SQL【递归】
- [T-SQL]从变量与数据类型说起
- 设计模式学习笔记——中介者(Mediator)模式