Android构建过程中出现错误 - “必须声明没有参数的默认公共构造函数”。是什么原因引起的?

5

在构建过程中,即使运行了Clean并重新构建,Android Studio仍返回错误:

如果声明了自定义构造函数,则必须声明一个默认的无参数公共构造函数。

我无法找到引用的文件或行号。由于构建过程没有任何指示,因此我不知道导致这个问题的原因是什么。


你能把错误日志粘贴到Pastebin并分享链接吗? - zon7
3个回答

3
如果您有一个像这样的自定义构造函数
public class Doge extends RealmObject {
     public Doge(String name) {
       ... 

那么您还必须拥有一个没有额外参数的默认构造函数。
public Doge() {
    // default values possible since 2.0.2
} 

0

我在网上搜索了一下,但没有找到任何相关的内容,这就是为什么我发布了这个问题。我希望它能指引其他遇到同样问题的人走向正确的方向。

事实证明,原因是我刚刚创建的一个新的Realm模型没有公开默认构造函数。当我意识到这一点后,我立即添加了默认构造函数到Realm模型中,然后编译错误消失了。

所以,如果在构建过程中出现此错误,请检查您的Realm模型是否缺少默认构造函数!


0

例子:

public class ModelResult {
String Ques;
String Ans;

public String getQues() {
    return Ques;
}

public void setQues(String ques) {
    Ques = ques;
}

public String getAns() {
    return Ans;
}

public void setAns(String ans) {
    Ans = ans;
}


public ModelResult(String ques, String ans) {
    super();
    Ques = ques;
    Ans = ans;
}

public ModelResult() {
    super();
    // TODO Auto-generated constructor stub
}
}

你可能缺失的部分是这个

public ModelResult() {
    super();
    // TODO Auto-generated constructor stub
}

是的,就是这样!我的问题在于没有文件或行号可以参考问题。我将对您的类进行轻微编辑,因为它涉及到一个RealmObject。 - oddmeter
我已经接受了它,但这个错误涉及到 RealmObject 的一个扩展。我的修改没有被接受,所以我将另一个标记为正确答案。 - oddmeter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接