我在资产/数据库中有一个数据库,也有一个类可以从我的数据库中读取数据
但是当打开数据库时,我得到了缺少数据库错误

注意:我在资产/数据库中有myDb.zip

这是我的类来打开数据库:

public class DB_helper extends SQLiteAssetHelper {
    private static final String DATABASE_NAME = "myDb.db";
    private static final int DATABASE_VERSION = 1;

    public DB_helper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);

    }

}


在这一行中,我称之为:

 SQLiteDatabase mydb = new DB_helper(appContext).getWritableDatabase();


我收到此错误:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: ir.dpsoft.saman, PID: 10620
    com.readystatesoftware.sqliteasset.SQLiteAssetHelper$SQLiteAssetException: Missing databases/myDb.db file (or .zip, .gz archive) in assets, or target folder not writable

最佳答案

SQLiteAssetHelper只是将.zip.gz后缀添加到基本名称,而不替换文件路径中的任何内容。

您可以使用资产名称或代码来解决此问题。要修复资产,请以myDb.db.zip而不是myDb.zip的形式运送数据库。或者,要修复代码,请将数据库名称传递为myDb而不是myDb.db

09-25 17:50
查看更多