"No hay un constructor por defecto disponible en android.database.sqlite.SQLitepenhelper" en Android Studio

Tratando de extender la clase con SQLiteOpenHelper, pero este error aparece: "No hay constructor por defecto disponible en android.database.sqlite.SQLitepenhelper" junto con otros "no se puede resolver el símbolo Categoría, Nota, …"

class DbHelper extends SQLiteOpenHelper { @Override public void onCreate(SQLiteDatabase db) { db.execSQL(Category.getSql()); db.execSQL(Note.getSql()); db.execSQL(Attachment.getSql()); db.execSQL(CheckItem.getSql()); } @Override public 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); } 

SQLiteOpenHelper definir un constructor explícito que llama al constructor super 4 o 5 arg en SQLiteOpenHelper .

Por ejemplo:

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

Donde database.db es el nombre de archivo de la base de datos y 1 es la versión.

Si su hijo de DBHelper entonces esta ayuda de la publicación, othervise usted puede allready understandfirst lo define como éste en fuera de usted clase, medios uperside …

 private DBHelper ourHelper; private final Context ourContext; 

Luego use esto

 class DbHelper extends SQLiteOpenHelper { public DBHelper(Context context) { super(context, DB_NAME, null, DB_VIRSION); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(Category.getSql()); db.execSQL(Note.getSql()); db.execSQL(Attachment.getSql()); db.execSQL(CheckItem.getSql()); } @Override public 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); } 

Y luego intenta este contexto para tu clase de padre

 public MyDatabase(Context c){ ourContext=c; } 
  • ¿Cuándo debo llamar a close () en SQLiteOpenHelper utilizado por ContentProvider
  • ¿Por qué no puedo usar Resources.getSystem () sin un error de tiempo de ejecución?
  • SQLiteOpenHelper: la forma más rápida de ejecutar ~ 20k instrucciones?
  • Problema con SQLiteOpenHelper en android 2.X y 3.X
  • Confundido sobre CursorLoaders y usarlos con un SQLiteOpenHelper personalizado
  • Intentando probar SQLiteOpenHelper pero getWritableDatabase () lanza Null
  • AsyncTask de Android y instancia de SQLite DB
  • Android SQLiteException: Error al cambiar la configuración regional de db a 'en_US'
  • Obtención de contexto en onCreate en SQLiteOpenHelper
  • SQLiteOpenHelper múltiples bases de datos en memoria
  • Android no actualiza la base de datos SQLite
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.