"There is no default constructor available in android.database.sqlite.SQLitepenhelper" in Android Studio "There is no default constructor available in android.database.sqlite.SQLitepenhelper" in Android Studio sqlite sqlite

"There is no default constructor available in android.database.sqlite.SQLitepenhelper" in Android Studio


You need to define an explicit constructor yourself that calls the 4- or 5-arg super constructor in SQLiteOpenHelper.

For example:

public DbHelper(Context context) {    super(context, "database.db", null, 1);}

where database.db is your database file name and 1 is the version.


If your DBHelper child then this post help, othervise you can allready understandfirst Define it like this one in outside of you class, means uperside...

private DBHelper ourHelper;private final Context ourContext;

Then use this

class DbHelper extends SQLiteOpenHelper {public DBHelper(Context context) {        super(context, DB_NAME, null, DB_VIRSION);        // TODO Auto-generated constructor stub    }@Overridepublic void onCreate(SQLiteDatabase db) {    db.execSQL(Category.getSql());    db.execSQL(Note.getSql());    db.execSQL(Attachment.getSql());    db.execSQL(CheckItem.getSql());}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {    db.execSQL("DROP TABLE IF EXISTS " + Category.TABLE_NAME);   db.execSQL("DROP TABLE IF EXISTS " + Note.TABLE_NAME);    db.execSQL("DROP TABLE IF EXISTS " + Attachment.TABLE_NAME);    db.execSQL("DROP TABLE IF EXISTS " + CheckItem.TABLE_NAME);    onCreate(db);}

And then try this context for your parent class

public MyDatabase(Context c){    ourContext=c;}