You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase数据库异常:Artist类缺失无参构造函数问题求助

解决Firebase DatabaseException:类未定义无参构造函数的问题

这个问题我之前也碰到过,原因很明确——Firebase Realtime Database在将JSON数据映射到Java对象时,必须依赖无参构造函数来创建对象实例,之后才会通过反射给字段赋值。你的Artist类只定义了带参构造函数,没有默认的无参构造,这就导致Firebase无法完成对象实例化,直接抛出了异常。

解决方案:给Artist类添加无参构造函数

只需要在Artist类中补充一个空的无参构造函数即可,即使是空实现也能满足Firebase的要求。修改后的代码如下:

package com.rcpl.agni;

/**
 * Created by Dell-pc on 23-01-2018.
 */
public class Artist {
 String artistId;
 String artistName;
 String artistGenre;

 // 新增无参构造函数,Firebase需要它来实例化对象
 public Artist() {
 }

 public Artist(String artistId, String artistName, String artistGenre) {
 this.artistId = artistId;
 this.artistName = artistName;
 this.artistGenre = artistGenre;
 }

 public String getArtistId() { return artistId; }
 public String getArtistName() { return artistName; }
 public String getArtistGenre() { return artistGenre; }
}

额外注意事项(如果使用ProGuard)

如果你的项目开启了ProGuard代码混淆,一定要确保这个无参构造函数不会被混淆工具移除。可以在ProGuard配置文件中添加如下规则:

-keepclassmembers class com.rcpl.agni.Artist {
    public <init>();
}

这条规则会告诉ProGuard保留Artist类的无参构造函数,避免被误删导致再次出现异常。

内容的提问来源于stack exchange,提问作者SHIVAM VARSHNEY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:59:24