无法从资源文件夹(Android Studio)加载数据库

时间:2017-02-09 11:39:27

标签: android database android-sqlite

快速背景 - 我没有真正的编程知识所以想想完全初学者!

我使用以下指南从assets文件夹加载数据库,它工作正常 http://www.javahelps.com/2015/04/import-and-use-external-database-in.html

我现在想稍微调整一下,所以它加载了一个不同的SQLite数据库,我使用DB Browser for SQLite创建了它,但它抛出了以下错误: 资产中缺少数据库/ Exercisesthree.db文件(或.zip,.gz存档)或目标文件夹不可写

我已将新数据库(Excercisesthree.db.zip)放在与工作的数据库相同的资产文件夹中(我也在那里留下了解压缩文件(Excercisesthree.db)。 我更改了DatabaseOpenHelper类以打开Excercisesthree.db而不是其他db(下面的代码)但由于某种原因它不起作用。我怀疑它与数据库的格式有关,因为我几乎没有改变代码

 package com.example.mat.externaldatabasedemo;

/**
 *  Created by Mat on 24-Jan-17.
 */
// http://www.javahelps.com/2015/04/import-and-use-external-database-in.html

import android.content.Context;
import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;

public class DatabaseOpenHelper extends SQLiteAssetHelper {

    private static final String DATABASE_NAME = "Exercisesthree.db";
    private static final int DATABASE_VERSION = 1;

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

这是数据库文件的链接: https://1drv.ms/u/s!AupGvbDoJdp9i26l9oO5CcCGf2I0

这是数据库文件的位置: C:\ Users \用户垫\ AndroidStudioProjects \ ExternalDatabaseDemo \应用\ SRC \主\资产\数据库

1 个答案:

答案 0 :(得分:0)

好的我已经对它进行了排序并确认它与数据库格式无关。最后,我创建了一个新项目并遵循原始指南,但将其更改为新数据库。 我认为必须发生的事情是我在整个过程中某处改变了部分代码并且它停止了工作。在测试时,它似乎正在工作,因为原始数据库已经加载到模拟器上,因此它掩盖了数据库不再从assets文件夹加载的事实。

我希望确切地发现代码的哪些部分缺失并停止工作以了解更多信息并报告,但不要以为我会有时间