我无法查询预先创建的数据库。我使用SQLiteDatabaseBrowser创建了一个SQLite数据库,并填充了它。以下查询适用于SQLiteDatabaseBrowser:
SELECT png FROM flags64 WHERE iso3='jpn' LIMIT 1
我将android项目中“../assets/databases”文件夹中的文件移动到Android Studio中。这是用于从我的Android应用程序查询数据库的代码:
public class myStickerDatabase extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "mysticker.db";
private static final int DATABASE_VERSION = 1;
public myStickerDatabase(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public Bitmap getFlag(String iso3) {
SQLiteDatabase db = getReadableDatabase();
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
Cursor c = db.rawQuery(String.format("SELECT png FROM flags64 WHERE iso3 = '%s' LIMIT 1", iso3), null);
c.moveToFirst();
byte[] png = c.getBlob(c.getColumnIndex("png"));
ByteArrayInputStream inputStream = new ByteArrayInputStream(png);
return BitmapFactory.decodeStream(inputStream);
}
}
调试代码查询不会返回任何记录。
更新 似乎数据库未复制到设备。 数据库大小约为250kb,但设备中的副本大约为24kb。为什么呢?