无法使用Sqlite AssetHelper库打开预安装的数据库

时间:2016-05-02 10:17:25

标签: android sqlite

我正在使用预先安装的数据库并使用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):无法打开数据库错误。

我搜索问题,并且主要是每个人都说要检查数据库文件夹中的数据库是否存在。

enter image description here

我尝试使用拉链仍然没有运气。我想我错过了一些东西。

1 个答案:

答案 0 :(得分:1)

您的assets/目录属于main/,而不属于app/