我正在使用预安装的数据库并使用 SqliteAssetHelper图书馆。
这是我的数据库代码
public class DBController extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "user.db";
private static final int DATABASE_VERSION = 1;
private final String TABLE_NAME = "User";
public DBController(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public ArrayList<UserData> getAllUserData() {
ArrayList<UserData> data_list = new ArrayList<>();
try {
// open database to query
SQLiteDatabase mySqliteDb = getWritableDatabase();
} catch (Exception e) {
Log.e("exception", "" + e);
}
close();
return data_list;
}
}
错误: Assets 中缺少数据库/user.db 文件(或 .zip、.gz 存档),或目标文件夹不可写
当我将我的代码更改为 SQLiteDatabase mySqliteDb = getReadableDatabase();
我得到 android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database 错误。
我搜索了这个问题,大多数人都说检查你的数据库是否存在于数据库文件夹中。
我试过使用 zip 还是不行。我想我错过了什么。
最佳答案
您的 assets/
目录属于 main/
,而不是 app/
。
关于android - 无法使用 Sqlite AssetHelper 库打开预安装的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36980068/