我正在使用预先安装的数据库并使用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;
}
}
错误:资产中缺少databases / user.db文件(或.zip,.gz存档)或目标文件夹不可写
当我将代码更改为SQLiteDatabase mySqliteDb = getReadableDatabase();
时,我收到 android.database.sqlite.SQLiteCantOpenDatabaseException:未知错误(代码14):无法打开数据库错误。
我搜索问题,并且主要是每个人都说要检查数据库文件夹中的数据库是否存在。
我尝试使用拉链仍然没有运气。我想我错过了一些东西。
答案 0 :(得分:1)
您的assets/
目录属于main/
,而不属于app/
。