Java Android无法打开现有的SQLite数据库文件

Java Android无法打开现有的SQLite数据库文件,java,android,sql,database,sqlite,Java,Android,Sql,Database,Sqlite,我有一个SQLite数据库文件,使用Sqliteman管理实用程序创建。我将创建的数据库文件复制到Eclipse项目的“资产”文件夹中(是否应该导出到.sql文件?) 因此,在代码中,我创建了自己的类,用于打开和使用现有文件路径中的数据库。以下是相关代码: private static String DB_FULL_PATH_EXISTING = "/data/data/com.jds.databasetest/databases/Book1"; 其中com.jds.database

我有一个SQLite数据库文件,使用Sqliteman管理实用程序创建。我将创建的数据库文件复制到Eclipse项目的“资产”文件夹中(是否应该导出到.sql文件?)

因此,在代码中,我创建了自己的类,用于打开和使用现有文件路径中的数据库。以下是相关代码:

    private static String DB_FULL_PATH_EXISTING = "/data/data/com.jds.databasetest/databases/Book1"; 
其中com.jds.databasetest是我的包名,Book1是资产文件夹中数据库文件的名称。现在在一些活动中:

    SQSimple existingDB = new SQSimple(this, "Book1", DB_FULL_PATH_EXISTING);
    existingDB.open();
SQSimple是我的自定义DB类。以下是相关的构造函数代码:

public SQSimple(Context c, String DBname, String existingDBpath) {
        this.mCtx = c; 
        this.DBname = DBname;
        this.DBpath = existingDBpath; 
        this.fromExisting = true; 
    }

public SQSimple open() throws android.database.SQLException {
        if (this.fromExisting == false) {
            dbHelper = new DatabaseHelper(this); 
            db = dbHelper.getWritableDatabase();
            return this; 
        } else { //opening from existing DB, i.e. this code gets run
            db = SQLiteDatabase.openDatabase(this.DBpath, null, SQLiteDatabase.OPEN_READWRITE);
            return this;
        }
    }
因此,试图通过existingDB.open()打开数据库会导致应用程序崩溃。Logcat说:

 E/Database(13144): sqlite3_open_v2("/data/data/com.jds.databasetest/databases/Book1", &handle, 2, NULL) failed
希望我所做的是非常明确的,我遗漏了一些非常明显的东西


非常感谢您的帮助。

我不太确定,但您可能需要参考数据

File data = Environment.getDataDirectory();

我不太确定,但也许你需要一个数据参考

File data = Environment.getDataDirectory();

我不知道那会有什么帮助。我一直在下面的例子中使用文件路径作为数据库的字符串:是的,我只记得当将数据库从Data备份到SD时,您将需要该引用,对不起。祝你好运。我不知道那会有什么帮助。我一直在下面的例子中使用文件路径作为数据库的字符串:是的,我只记得当将数据库从Data备份到SD时,您将需要该引用,对不起。祝你好运。另外,我想补充一点:我不确定在我的情况下,如此常用的dbHelper将用于什么目的。我有文件路径。。。我能不能用SQLiteDatabase.openDatabase()打开这个东西?另外,我想补充一点:我不确定在我的情况下,如此常用的dbHelper是做什么用的。我有文件路径。。。我能不能用SQLiteDatabase.openDatabase()打开这个东西?