错误:此类应提供默认构造函数(不带参数的公共构造函数)(com.example.app.Dblogic)[Instantiatable]

时间:2015-02-25 09:10:23

标签: java android sqlite constructor

我目前正在使用Android studio 1.1.0。

我的项目成功构建。但是,当我尝试创建签名APK时,我看到以下消息: 错误:错误:此类应提供默认构造函数(不带参数的公共构造函数)(com.example.app.Dblogic)[Instantiatable]

我见过很多人建议我创建一个空构造函数。 但是,我的类Dblogic扩展了SQLiteOpenHelper。 当我为Dblogic创建并清空构造函数时,我看到了以下消息: android.database.sqlite.sqliteopenhelper

中没有可用的默认构造函数

这似乎是一个陷阱22的情况。 感谢您的帮助!

代码:

package com.example.app;

import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;


public class Dblogic extends SQLiteOpenHelper {

static final String DATABASE_NAME = "sweet.db";
private static final int DATABASE_VERSION = 1;

static final String TABLE_NAME1 = "tb_sweet";

private SQLiteDatabase database;

public Dblogic() {
}


public Dblogic(Context context) {
//public Dblogic() {
    //super(context, DATABASE_NAME, null, DATABASE_VERSION);
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
    // TODO Auto-generated constructor stub
}



@Override
public void onCreate(SQLiteDatabase db) {
      db.execSQL("CREATE TABLE "+ TABLE_NAME1    + " ( "    + "_id INTEGER PRIMARY KEY AUTOINCREMENT, Date TEXT NOT NULL, Name TEXT NOT NULL, Description TEXT NOT NULL, Image BLOB);");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME1);
    onCreate(db);
}

public void openDB() throws SQLException {
    database = getWritableDatabase();
}

public void closeDB() {
    database.close();
}

public long insertQuery(ContentValues cValues) {
    return database.insert(TABLE_NAME1, null, cValues);
}

}

1 个答案:

答案 0 :(得分:-2)

public Dblogic() {

    super(null, DATABASE_NAME, null, DATABASE_VERSION);
    // TODO Auto-generated constructor stub
}

我遇到了同样的问题,可以通过上面的代码来解决。