首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >匕首与包裹有冲突

匕首与包裹有冲突
EN

Stack Overflow用户
提问于 2020-01-15 13:44:45
回答 2查看 82关注 0票数 0

由于我想用putExtra方法发送数据,所以当我在model类中添加@parcel时,我会捕捉到这些错误。在我的数据模型类中添加@parcel之前,我没有错误。

错误:找不到符号类DaggerApplicationComponent

错误: Parceler:没有@ParcelConstructor注释的构造函数,也没有找到默认的空bean构造函数。

这是我的类应用程序(G类)

代码语言:javascript
运行
复制
    public class App extends Application {

    static ApplicationComponent component;

    @Override
    public void onCreate() {
        super.onCreate();

        component = DaggerApplicationComponent.builder()
                .androidModule(new AndroidModule(this))
                .build();
    }
    public static ApplicationComponent getComponent()
    {
        return component;
    }
}

这是我的UserData类(数据模型)

代码语言:javascript
运行
复制
@Parcel
public class UserData {

    private int id;
    private String email;
    private String first_name;
    private   String last_name;
    private String avatar;

    public UserData(int id, String email, String first_name, String last_name, String avatar) {
        this.id = id;
        this.email = email;
        this.first_name = first_name;
        this.last_name = last_name;
        this.avatar = avatar;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getFirst_name() {
        return first_name;
    }

    public void setFirst_name(String first_name) {
        this.first_name = first_name;
    }

    public String getLast_name() {
        return last_name;
    }

    public void setLast_name(String last_name) {
        this.last_name = last_name;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }
}
EN

回答 2

Stack Overflow用户

发布于 2020-01-15 14:26:47

看起来,parceler要求带注释的类有一个没有params的构造函数,或者一个带有@ParcelConstructor注释的构造函数。我不认为这和匕首有关。

票数 1
EN

Stack Overflow用户

发布于 2020-01-17 10:53:30

匕首不是问题。你得到了

错误:找不到符号类DaggerApplicationComponent

因为注释处理器失败了。因此,Dagger无法生成DaggerApplicationComponent。真正的问题,如您的日志中所述,是您的数据类。您需要用@ParcelConstructor注释构造函数。

代码语言:javascript
运行
复制
@Parcel
public class UserData {

    private int id;
    private String email;
    private String first_name;
    private   String last_name;
    private String avatar;

    @ParcelConstructor
    public UserData(int id, String email, String first_name, String last_name, String avatar) {
        this.id = id;
        this.email = email;
        this.first_name = first_name;
        this.last_name = last_name;
        this.avatar = avatar;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getFirst_name() {
        return first_name;
    }

    public void setFirst_name(String first_name) {
        this.first_name = first_name;
    }

    public String getLast_name() {
        return last_name;
    }

    public void setLast_name(String last_name) {
        this.last_name = last_name;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59752703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档