因为我想用putExtra方法发送数据,所以我尝试使用宗地批注,当我将@parcel添加到may数据模型类时,会捕获这些错误。在我的数据模型类上添加@parcel之前,我没有任何错误。
错误:找不到符号类DaggerApplicationComponent
错误:打包程序:否@ParcelConstructor注释的构造函数,也没有找到默认的空bean构造函数。
这是我的班级App(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;
}
}
似乎,打包程序要求带注释的类具有不带参数的构造函数,或具有@ParcelConstructor注释的构造函数。我认为这与匕首无关。
匕首不是问题。您得到了
错误:找不到符号类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;
}
}