作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在使用 SQLiteAssetHelper 时在某些设备上遇到崩溃问题在我的应用程序中,主要是在 OnePlus 设备上。现在我读了here它与数据库存储的目录有关。
现在我正在尝试找到一个解决方法,目前我能想到的最好的方法就是这样的构造函数
public MySubclass(Context context) {
super(context, databaseName, context.getFilesDir() + "/databases", null, databaseVersion);
这是正确的方法还是这种方法有其他问题?
编辑
异常(exception)情况是
Fatal Exception: android.database.sqlite.SQLiteException: Can't upgrade read-only database from version x to y: /data/data/my.package.id/databases/database.db
抱歉,我链接了错误的 SO 问题:this is the correct one .上面写着“OnePlus 能够将数据库复制到/data/data/package-name/databases/filename.db,但它不允许访问该数据,我对此一无所知。”
最佳答案
SQLiteAssetHelper 构造函数允许您指定自己的数据库目标路径(文件夹需要是可写的)。如果你没有指定任何它默认使用一个。请参阅 Github 存储库的摘录:
if (storageDirectory != null) {
mDatabasePath = storageDirectory;
} else {
mDatabasePath = context.getApplicationInfo().dataDir + "/databases";
}
关于android - SQLiteAssetHelper - 特定手机上的问题,例如一加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34068268/
我是一名优秀的程序员,十分优秀!