java.lang.SecurityException:无法访问java.lang.Class构造函数



我想要一个自定义JAVA类对象来存储应用程序中的所有数据。此对象需要传递到Firebase云Firestore数据库。

为了测试运行它,我在按钮上添加了一个简单的setOnCLickListener((函数。UI仅包含此按钮。

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
test test1 = new test("saheel", 23032001, 19, "GOLD", "abc");
/*test1.setAge(19);
test1.setName("saheel2");
test1.setDOB(23032001);
test1.setMembership("GOLD");
test1.setTrainer_name("abc");*/
db.collection("u").document(test1.getName()).collection("profile").document("profile").set(test.class);
}
});

测试等级-

public class test {
private String name;
private int DOB;
private int age;
private String membership;
private String trainer_name;
public test(String name, int DOB, int age, String membership, String trainer_name) {
this.name = name;
this.DOB = DOB;
this.age = age;
this.membership = membership;
this.trainer_name = trainer_name;
}
public test(){
//no-argument constructor
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getDOB() {
return DOB;
}
public void setDOB(int DOB) {
this.DOB = DOB;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getMembership() {
return membership;
}
public void setMembership(String membership) {
this.membership = membership;
}
public String getTrainer_name() {
return trainer_name;
}
public void setTrainer_name(String trainer_name) {
this.trainer_name = trainer_name;
}
}

单击按钮后,应用程序崩溃,logcat显示以下错误-

Process: com.example.firebase, PID: 2143
java.lang.SecurityException: Can not make a java.lang.Class constructor accessible
at java.lang.reflect.AccessibleObject.setAccessible0(AccessibleObject.java:150)
at java.lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:132)
at com.google.firebase.firestore.util.CustomClassMapper$BeanMapper.<init>(CustomClassMapper.java:612)
at com.google.firebase.firestore.util.CustomClassMapper.loadOrCreateBeanMapperForClass(CustomClassMapper.java:377)
at com.google.firebase.firestore.util.CustomClassMapper.serialize(CustomClassMapper.java:177)
at com.google.firebase.firestore.util.CustomClassMapper.serialize(CustomClassMapper.java:104)
at com.google.firebase.firestore.util.CustomClassMapper.convertToPlainJavaTypes(CustomClassMapper.java:78)
at com.google.firebase.firestore.UserDataReader.convertAndParseDocumentData(UserDataReader.java:231)
at com.google.firebase.firestore.UserDataReader.parseSetData(UserDataReader.java:75)
at com.google.firebase.firestore.DocumentReference.set(DocumentReference.java:166)
at com.google.firebase.firestore.DocumentReference.set(DocumentReference.java:146)
at com.example.firebase.addData$1.onClick(addData.java:32)
at android.view.View.performClick(View.java:7448)
at android.view.View.performClickInternal(View.java:7425)
at android.view.View.access$3600(View.java:810)
at android.view.View$PerformClick.run(View.java:28305)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)```

不提供类,而是提供类的变量来保存数据:

db.collection("u").document(test1.getName()).collection("profile").document("profile").set(test1);

相关内容

最新更新