java.lang.IllegalArgumentException: Can't find a no-arg constructor for class com.xiayiye.takeout.mo

直接上错误日志:


2020-03-11 18:20:16.647 15661-15661/com.xiayiye.takeout W/System.err: java.lang.IllegalArgumentException: Can't find a no-arg constructor for class com.xiayiye.takeout.model.beans.Data
2020-03-11 18:20:16.648 15661-15661/com.xiayiye.takeout W/System.err:     at com.j256.ormlite.table.DatabaseTableConfig.findNoArgConstructor(DatabaseTableConfig.java:210)
2020-03-11 18:20:16.648 15661-15661/com.xiayiye.takeout W/System.err:     at com.j256.ormlite.table.DatabaseTableConfig.getConstructor(DatabaseTableConfig.java:141)
2020-03-11 18:20:16.648 15661-15661/com.xiayiye.takeout W/System.err:     at com.j256.ormlite.table.TableInfo.<init>(TableInfo.java:94)
2020-03-11 18:20:16.648 15661-15661/com.xiayiye.takeout W/System.err:     at com.j256.ormlite.dao.BaseDaoImpl.initialize(BaseDaoImpl.java:158)
2020-03-11 18:20:16.648 15661-15661/com.xiayiye.takeout W/System.err:     at com.j256.ormlite.dao.BaseDaoImpl.<init>(BaseDaoImpl.java:132)
2020-03-11 18:20:16.648 15661-15661/com.xiayiye.takeout W/System.err:     at com.j256.ormlite.dao.BaseDaoImpl.<init>(BaseDaoImpl.java:123)
2020-03-11 18:20:16.648 15661-15661/com.xiayiye.takeout W/System.err:     at com.j256.ormlite.dao.BaseDaoImpl$6.<init>(BaseDaoImpl.java:1055)
2020-03-11 18:20:16.648 15661-15661/com.xiayiye.takeout W/System.err:     at com.j256.ormlite.dao.BaseDaoImpl.createDao(BaseDaoImpl.java:1055)
2020-03-11 18:20:16.648 15661-15661/com.xiayiye.takeout W/System.err:     at com.j256.ormlite.dao.DaoManager.createDao(DaoManager.java:72)
2020-03-11 18:20:16.648 15661-15661/com.xiayiye.takeout W/System.err:     at com.j256.ormlite.table.TableUtils.createTable(TableUtils.java:54)
2020-03-11 18:20:16.648 15661-15661/com.xiayiye.takeout W/System.err:     at com.xiayiye.takeout.model.dao.TakeOutOpenHelper.onCreate(TakeOutOpenHelper.kt:56)
2020-03-11 18:20:16.648 15661-15661/com.xiayiye.takeout W/System.err:     at com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper.onCreate(OrmLiteSqliteOpenHelper.java:207)
2020-03-11 18:20:16.649 15661-15661/com.xiayiye.takeout W/System.err:     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:251)
2020-03-11 18:20:16.649 15661-15661/com.xiayiye.takeout W/System.err:     at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
2020-03-11 18:20:16.649 15661-15661/com.xiayiye.takeout W/System.err:     at com.j256.ormlite.android.AndroidConnectionSource.getReadWriteConnection(AndroidConnectionSource.java:68)
2020-03-11 18:20:16.649 15661-15661/com.xiayiye.takeout W/System.err:     at com.j256.ormlite.dao.BaseDaoImpl.create(BaseDaoImpl.java:326)
2020-03-11 18:20:16.649 15661-15661/com.xiayiye.takeout W/System.err:     at com.xiayiye.takeout.model.dao.AddressDao.addReceiptAddressBean(AddressDao.kt:59)
2020-03-11 18:20:16.649 15661-15661/com.xiayiye.takeout W/System.err:     at com.xiayiye.takeout.ui.activity.AddReceiptAddressActivity.addAddress(AddReceiptAddressActivity.kt:133)
2020-03-11 18:20:16.649 15661-15661/com.xiayiye.takeout W/System.err:     at com.xiayiye.takeout.ui.activity.AddReceiptAddressActivity.clickOk(AddReceiptAddressActivity.kt:119)
2020-03-11 18:20:16.649 15661-15661/com.xiayiye.takeout W/System.err:     at com.xiayiye.takeout.ui.activity.AddReceiptAddressActivity.access$clickOk(AddReceiptAddressActivity.kt:55)
2020-03-11 18:20:16.649 15661-15661/com.xiayiye.takeout W/System.err:     at com.xiayiye.takeout.ui.activity.AddReceiptAddressActivity$initListener$6.onClick(AddReceiptAddressActivity.kt:78)
2020-03-11 18:20:16.649 15661-15661/com.xiayiye.takeout W/System.err:     at android.view.View.performClick(View.java:5644)
2020-03-11 18:20:16.649 15661-15661/com.xiayiye.takeout W/System.err:     at android.view.View$PerformClick.run(View.java:22440)
2020-03-11 18:20:16.649 15661-15661/com.xiayiye.takeout W/System.err:     at android.os.Handler.handleCallback(Handler.java:751)
2020-03-11 18:20:16.649 15661-15661/com.xiayiye.takeout W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
2020-03-11 18:20:16.649 15661-15661/com.xiayiye.takeout W/System.err:     at android.os.Looper.loop(Looper.java:154)
2020-03-11 18:20:16.649 15661-15661/com.xiayiye.takeout W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6166)
2020-03-11 18:20:16.649 15661-15661/com.xiayiye.takeout W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
2020-03-11 18:20:16.649 15661-15661/com.xiayiye.takeout W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)

使用ormLite数据库报错,提示找不到无参构造

解决方法非常简单:

报错的bean

package com.xiayiye.takeout.model.beans

import com.j256.ormlite.field.DatabaseField
import com.j256.ormlite.table.DatabaseTable
import java.io.Serializable


@DatabaseTable(tableName = "t_user")
class Data : Serializable {
    @DatabaseField(columnName = "balance")
    var balance: Double = 0.0
    @DatabaseField(columnName = "discount")
    var discount: Int = 0
    @DatabaseField(id = true)
    var id: Int = 0
    @DatabaseField(columnName = "integral")
    var integral: Int = 0
    @DatabaseField(columnName = "name")
    var name: String = ""
    @DatabaseField(columnName = "phone")
    var phone: String = ""

    constructor(
        balance: Double,
        discount: Int,
        id: Int,
        integral: Int,
        name: String,
        phone: String
    ){
        this.balance = balance
        this.discount = discount
        this.id = id
        this.integral = integral
        this.name = name
        this.phone = phone
    }
}

更正后的bean

package com.xiayiye.takeout.model.beans

import com.j256.ormlite.field.DatabaseField
import com.j256.ormlite.table.DatabaseTable
import java.io.Serializable



@DatabaseTable(tableName = "t_user")
class Data() : Serializable {
    @DatabaseField(columnName = "balance")
    var balance: Double = 0.0
    @DatabaseField(columnName = "discount")
    var discount: Int = 0
    @DatabaseField(id = true)
    var id: Int = 0
    @DatabaseField(columnName = "integral")
    var integral: Int = 0
    @DatabaseField(columnName = "name")
    var name: String = ""
    @DatabaseField(columnName = "phone")
    var phone: String = ""

    constructor(
        balance: Double,
        discount: Int,
        id: Int,
        integral: Int,
        name: String,
        phone: String
    ) : this() {
        this.balance = balance
        this.discount = discount
        this.id = id
        this.integral = integral
        this.name = name
        this.phone = phone
    }
}

只需要再class上面加个"()"无参构造,然后让实现的构造方法继承this()即可

修改后看下成功的log

2020-03-11 18:29:01.814 16519-16519/com.xiayiye.takeout I/TableUtils: creating table 't_address'
2020-03-11 18:29:01.819 16519-16519/com.xiayiye.takeout I/TableUtils: executed create table statement changed 0 rows: CREATE TABLE `t_address` (`address` VARCHAR , `detailAddress` VARCHAR , `id` INTEGER PRIMARY KEY AUTOINCREMENT , `label` VARCHAR , `phone` VARCHAR , `phoneOther` VARCHAR , `sex` VARCHAR , `userId` VARCHAR , `userName` VARCHAR ) 
2020-03-11 18:29:01.829 16519-16519/com.xiayiye.takeout I/TableUtils: creating table 't_user'
2020-03-11 18:29:01.831 16519-16519/com.xiayiye.takeout I/TableUtils: executed create table statement changed 0 rows: CREATE TABLE `t_user` (`balance` DOUBLE PRECISION , `discount` INTEGER , `id` INTEGER , `integral` INTEGER , `name` VARCHAR , `phone` VARCHAR , PRIMARY KEY (`id`) ) 
2020-03-11 18:29:01.861 16519-16519/com.xiayiye.takeout D/InputTransport: tzyl sample state about factory normal 
2020-03-11 18:30:04.404 16519-16519/com.xiayiye.takeout W/IInputConnectionWrapper: finishComposingText on inactive InputConnection
2020-03-11 18:30:04.708 16519-16519/com.xiayiye.takeout D/JIGUANG-JCore: [JCoreHelper] runActionWithService action:change_foreground
2020-03-11 18:30:51.296 16519-16524/com.xiayiye.takeout I/art: Do full code cache collection, code=121KB, data=123KB
2020-03-11 18:30:51.296 16519-16524/com.xiayiye.takeout I/art: Starting a blocking GC JitCodeCache
2020-03-11 18:30:51.297 16519-16524/com.xiayiye.takeout I/art: After code cache collection, code=102KB, data=84KB
2020-03-11 19:00:45.433 16519-16524/com.xiayiye.takeout I/art: Do partial code cache collection, code=122KB, data=104KB
2020-03-11 19:00:45.434 16519-16524/com.xiayiye.takeout I/art: After code cache collection, code=122KB, data=104KB
2020-03-11 19:00:45.434 16519-16524/com.xiayiye.takeout I/art: Increasing code cache capacity to 512KB

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值