【问题标题】:Not able to open pre-installed database using Sqlite AssetHelper library无法使用 Sqlite AssetHelper 库打开预安装的数据库
【发布时间】:2023-03-10 22:07:01
【问题描述】:

我正在处理预安装的数据库并为此使用 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;
    }
}

错误:资产中缺少数据库/user.db 文件(或 .zip、.gz 存档),或目标文件夹不可写

当我将代码更改为 SQLiteDatabase mySqliteDb = getReadableDatabase(); 时,我收到 android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database 错误。

我搜索问题,大多数人都说检查你的数据库是否存在于数据库文件夹中。

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

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      • 2014-11-11
      • 2014-08-30
      • 2015-06-22
      相关资源
      最近更新 更多