我目前正在使用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);
}
}
答案 0 :(得分:-2)
public Dblogic() {
super(null, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
我遇到了同样的问题,可以通过上面的代码来解决。