I am extending SQLiteAssetHelper
class to use my pre-populated database from assets folder but my app crashed and gave an error saying Caused by: android.
Right click on your database file in the Package Explorer,
& click on the Properties.
inside the Resource Tab make sure the "Write" Permission is Checked for the "Owner" and "Read" Permission is Checked for all the "Users".
Missing databases/mydb.sqlite file (or .zip, .gz archive) in assets, or target folder not writable
Do you have the database file in your
assets/databases
folder?no, in assets folder only
SQLiteAssetHelper
expects to find the prepopulated database file in databases
folder under assets
.
Make sure you have the db file under assets\databases folder in your app, in the main folder.
Also make sure you have specified the correct database name, so if your file name is data.db, your database name should be data.db.
public class MyHelperDatabase extends com.readystatesoftware.sqliteasset.SQLiteAssetHelper {
private static final String DATABASE_NAME = "data.db";
Or if you are using Room:
public abstract class AppDatabase extends RoomDatabase {
private static AppDatabase INSTANCE;
@VisibleForTesting
public static final String DATABASE_NAME = "data.db";