Android SQLite数据库连接未成功

Android SQLite数据库连接未成功,android,database,sqlite,connection,Android,Database,Sqlite,Connection,我在当前项目中遇到了一个小问题。我正在做一个android应用程序,它需要连接到SQLite数据库来处理一些语句。我相信这些语句等都很好,我唯一的问题是连接到数据库没有成功 LogCat错误: 04-18 08:20:30.688: E/Database(304): sqlite3_open_v2("jdbc:sqlite:res/raw/randomdb.db", &handle, 1, NULL) failed 到目前为止,我连接数据库的代码如下: String url = "jd

我在当前项目中遇到了一个小问题。我正在做一个android应用程序,它需要连接到SQLite数据库来处理一些语句。我相信这些语句等都很好,我唯一的问题是连接到数据库没有成功

LogCat错误:

04-18 08:20:30.688: E/Database(304): sqlite3_open_v2("jdbc:sqlite:res/raw/randomdb.db", &handle, 1, NULL) failed
到目前为止,我连接数据库的代码如下:

String url = "jdbc:sqlite:res/raw/randomdb.db";
            SQLiteDatabase db;
            db = SQLiteDatabase.openDatabase(url, null, SQLiteDatabase.OPEN_READONLY);
如您所见,我正在尝试访问位于project/res/raw文件夹中的数据库。有人看到错误了吗

!!!使现代化 *我尝试使用SQLiteOpenHelper,但仍然遇到一个我似乎无法解决的错误。这是我的新代码:*

我得到这个错误: 默认构造函数的隐式超级构造函数SQLiteOpenHelper未定义。必须定义显式构造函数
有什么想法吗?那太好了

如果要将android应用程序与SQLite数据库连接,则需要扩展SQLiteOpenHelper

 public class AbcClass extends SQLiteOpenHelper
之后,您需要重写这些方法: onCreate和onUpgrade AbcClass的构造函数如下所示:

public AbcClass(Context context) {
    super(context, DB_NAME, null, VERSION); //public static final String DB_NAME = "test.sqlite";
}
或------------

private boolean checkDataBase(){

    SQLiteDatabase checkDB = null;

    try{
        String myPath = DB_PATH + DB_NAME;
        checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);

    }catch(SQLiteException e){

        //database does't exist yet.

    }

    if(checkDB != null){

        checkDB.close();

    }

    return checkDB != null ? true : false;
}

我认为您指定的路径不正确,因此,正如其他答案中提到的,找不到数据库。但是,我从未使用openDatabase方法读取原始文件夹,因此我不知道哪个是正确的路径

然而,有一次,我将数据库与我的应用程序一起提供。它位于assets文件夹中,应用程序启动后,我将其复制到私有应用程序存储中,就像使用SqliteOpenHelper创建的任何数据库一样。从那时起,我使用SqliteOpenHelper的常规方法访问数据库

基本上,我遵循了本文中提到的博客,因为我的数据库文件大于1MB,所以我使用了本文中描述的技术。希望将这两者结合起来,您的数据库就可以运行了

编辑Btw您是错误的,不接受url,但路径

    public boolean databaseExist()
    {
        File dbFile = new File(DB_PATH + DB_NAME);
        return dbFile.exists();
    }

This is the solution...
private boolean checkDataBase(){

    SQLiteDatabase checkDB = null;

    try{
        String myPath = DB_PATH + DB_NAME;
        checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);

    }catch(SQLiteException e){

        //database does't exist yet.

    }

    if(checkDB != null){

        checkDB.close();

    }

    return checkDB != null ? true : false;
}