由于我想用putExtra方法发送数据,所以当我在model类中添加@parcel时,我会捕捉到这些错误。在我的数据模型类中添加@parcel之前,我没有错误。
错误:找不到符号类DaggerApplicationComponent
错误: Parceler:没有@ParcelConstructor注释的构造函数,也没有找到默认的空bean构造函数。
这是我的类应用程序(G类)
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类(数据模型)
@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;
}
}发布于 2020-01-15 14:26:47
看起来,parceler要求带注释的类有一个没有params的构造函数,或者一个带有@ParcelConstructor注释的构造函数。我不认为这和匕首有关。
发布于 2020-01-17 10:53:30
匕首不是问题。你得到了
错误:找不到符号类DaggerApplicationComponent
因为注释处理器失败了。因此,Dagger无法生成DaggerApplicationComponent。真正的问题,如您的日志中所述,是您的数据类。您需要用@ParcelConstructor注释构造函数。
@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;
}
}https://stackoverflow.com/questions/59752703
复制相似问题