0

我正在尝试读取存储在 SDCard 上的 SQLite 数据库。部分代码如下:

public String getTables() {
    String dbFullPath = Environment.getExternalStorageDirectory().toString() + "/external_sd/database.db";
    String query = "SELECT name from sqlite_master where type='table'";
    SQLiteDatabase mDatabase = SQLiteDatabase
            .openDatabase(dbFullPath, null, SQLiteDatabase.OPEN_READONLY
                    + SQLiteDatabase.NO_LOCALIZED_COLLATORS);
    Log.d(TAG, "Is db open? " + mDatabase.isOpen());
    Cursor cursor = mDatabase.rawQuery(query, null);
    String tables = cursor.getString(0);
    cursor.close();

    return tables;
}

但是,在运行此代码时,出现以下错误

java.lang.RuntimeException:无法启动活动 ComponentInfo{...}:android.database.sqlite.SQLiteException:无法打开数据库文件:,编译时:SELECT name from sqlite_master where type='table'

Cursor cursor = mDatabase.rawQuery(query, null);线。

调试日志返回Is db open? true,意味着我找到了正确的路径并且数据库已成功打开?

4

1 回答 1

0
Cursor cursor = mDatabase.query(sqlite_master, new String[] { "name" }, "type=" + table, null,
                null, null, "name asc");
于 2013-03-29T09:32:40.297 回答