This is how I solved it, and how you can ship your application with a pre-populated database (up to Room v. alpha5)
-
put your SQLite DB
database_name.db
into theassets/databases
folder -
take the files from this repo and put them in a package called i.e.
sqlAsset
-
in your
AppDatabase
class, modify your Room’s DB creation code accordingly:Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, "database_name.db") .openHelperFactory(new AssetSQLiteOpenHelperFactory()) .allowMainThreadQueries() .build();
Note that you have to use "database_name.db"
and not getDatabasePath()
or other methods: it just needs the name of the file.