繁体   English   中英

在android studio中构建签名的apk时出错:此类应提供默认的构造函数

[英]Error building signed apk in android studio: This class should provide default constructor

错误:此类应提供默认构造函数(不带参数的公共构造函数)(com.tasbih.counter.tasbihcounter.RegistrationAdapterr)[Instantiatable]

当我尝试构建签名的apk时,会发生此错误,但是在调试模式下,应用程序运行正常。 请帮忙。

package com.tasbih.counter.tasbihcounter;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

    public class RegistrationAdapterr {
    SQLiteDatabase database_ob;
    RegistrationOpenHelperr openHelper_ob;
    Context context;

    public RegistrationAdapterr(Context c) {
        context = c;
    }


    public RegistrationAdapterr opnToRead() {
        openHelper_ob = new RegistrationOpenHelperr(context,
                openHelper_ob.DATABASE_NAME, null, openHelper_ob.VERSION);
        database_ob = openHelper_ob.getReadableDatabase();
        return this;
    }

    public RegistrationAdapterr opnToWrite() {
        openHelper_ob = new RegistrationOpenHelperr(context,
                openHelper_ob.DATABASE_NAME, null, openHelper_ob.VERSION);
        database_ob = openHelper_ob.getWritableDatabase();
        return this;
    }

    public void Close() {
        database_ob.close();
    }

    public long insertDetails(String fname, String lname, Integer count) {
        ContentValues contentValues = new ContentValues();
        contentValues.put(openHelper_ob.FNAME, fname);
        contentValues.put(openHelper_ob.LNAME, lname);
        contentValues.put(openHelper_ob.COUNT, count);
        opnToWrite();
        long val = database_ob.insert(openHelper_ob.TABLE_NAME, null,
                contentValues);
        Close();
        return val;
    }

    public Cursor queryName() {
        String[] cols = {openHelper_ob.KEY_ID, openHelper_ob.FNAME,
                openHelper_ob.LNAME, openHelper_ob.COUNT};
        opnToWrite();
        Cursor c = database_ob.query(openHelper_ob.TABLE_NAME, cols, 
                null, null, null, null, null);
        return c;
    }

    public Cursor queryAll(int nameId) {
        String[] cols = {openHelper_ob.KEY_ID, openHelper_ob.FNAME,
                openHelper_ob.LNAME, openHelper_ob.COUNT};
        opnToWrite();
        Cursor c = database_ob.query(openHelper_ob.TABLE_NAME, cols,
                openHelper_ob.KEY_ID + "=" + nameId, null, null, null, null);
        return c;
    }

    public long updateldetail(int rowId, String fname, String lname, Integer count) {
        ContentValues contentValues = new ContentValues();
        contentValues.put(openHelper_ob.FNAME, fname);
        contentValues.put(openHelper_ob.LNAME, lname);
        contentValues.put(openHelper_ob.COUNT, count);
        opnToWrite();
        long val = database_ob.update(openHelper_ob.TABLE_NAME, contentValues,
                openHelper_ob.KEY_ID + "=" + rowId, null);
        Close();
        return val;
    }

    public int deletOneRecord(int rowId) {
        // TODO Auto-generated method stub
        opnToWrite();
        int val = database_ob.delete(openHelper_ob.TABLE_NAME,
                openHelper_ob.KEY_ID + "=" + rowId, null);
        Close();
        return val;
    }
}

我认为您应该尝试在build.gradle中添加以下脚本。 (必须使用android {}标签编写)

lintOptions {
    abortOnError false
}

当您的发行版构建通过lint生成错误时,构建任务将不会中止。

在您的班级中添加:

public RegistrationAdapterr(){
}

在哪个类中您会发现相同的错误,只需创建默认的构造函数即可,例如RegestrationOpenHelper:

public RegestrationOpenHelper(){
}

在您的班级中添加:

public RegistrationAdapterr(){}

到=>公共类RegistrationAdapterr

public RegestrationOpenHelper(Context context) {
    super(context, DB_Name, null, DB_Ver);
}

到=>类RegestrationOpenHelper

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM