我正在尝试读取存储在 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
,意味着我找到了正确的路径并且数据库已成功打开?