Sqlite3 写入数据库失败:attempt to write a readonly database.
问题及解决办法
一个Android程序在大部分手机上运行正常,在某一款手机(华为荣耀7)上运行失败。具体表现为在写入Sqlite数据库时出现Sqlite3Exception :attempt to write a readonly database.
在仔细检查sqlite3_open/sqlite3_open_v2的参数、apk的SD卡读取权限、sqlite数据库的文件读写权限后,并没有发现任何问题,那么分析问题可能出在NDK与机器架构上了。
查看该机器使用的是arm64位CPU.然而在application.mk文件里,APP_ABI 并未配置64位选项。
配置
APP_ABI :=
armeabi-v7a
arm64-v8a
后再使用NDK编译 ,解决sqlite3的Readonly的问题。