java.lang.IllegalArgumentException:只能从域复制有效的托管对象

java.lang.IllegalArgumentException:只能从域复制有效的托管对象,java,android,json,realm,Java,Android,Json,Realm,在从服务器读取数据后,我使用realm来存储数据,但当我尝试在realm中存储数据时,我得到了“java.lang.IllegalArgumentException:'value'不是有效的托管对象” 有我的源代码登录类 if (response.isSuccessful()) { if (response.body().getMessage().equals("found")) { Us

在从服务器读取数据后,我使用realm来存储数据,但当我尝试在realm中存储数据时,我得到了“java.lang.IllegalArgumentException:'value'不是有效的托管对象”

有我的源代码登录类

if (response.isSuccessful()) {
                    if (response.body().getMessage().equals("found")) {
                        User user = response.body().getData().get(0);
                        Log.v("Data User ","- "+user.toString());

                        saveUser(user);

                        Intent intent = new Intent(SignInActivity.this, MainActivity.class);
                        startActivity(intent);
                        finish();
                    } else {
                        Toast.makeText(SignInActivity.this, "Username or wrong Password", Toast.LENGTH_SHORT).show();
                    }
private void saveUser(User user) {
        Realm realm = Realm.getDefaultInstance();
        realm.beginTransaction();
        realm.delete(User.class);
        realm.copyToRealm(user);
        realm.commitTransaction();


        MainApplication.getInstance(SignInActivity.this).setLoginUser(user);
    }
public class User extends RealmObject implements Serializable {

    @PrimaryKey
    @SerializedName("id")
    @Expose
    private String id;

    @SerializedName("first_name")
    @Expose
    private String first_name;

    @SerializedName("last_name")
    @Expose
    private String last_name;

    @SerializedName("email")
    @Expose
    private String email;

    @SerializedName("number")
    @Expose
    private String number;

    @SerializedName("password")
    @Expose
    private String password;

    @SerializedName("adress")
    @Expose
    private String adress;

    @SerializedName("created_on")
    @Expose
    private String createdOn;

    @SerializedName("reg_id")
    @Expose
    private String regId;

    @SerializedName("status")
    @Expose
    private String status;

    private long mPaySaldo;

    public String getId() {
        return id;
    }

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

    public String getFirstName() {
        return firstname;
    }

    public void setFirstName(String firstname) {
        this.firstname = firstname;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getEmail() {
        return email;
    }

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

    public String getNumber() {
        return Number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getAdress() {
        return alamat;
    }

    public void setAdress(String alamat) {
        this.alamat = alamat;
    }

    public String getCreatedOn() {
        return createdOn;
    }

    public void setCreatedOn(String createdOn) {
        this.createdOn = createdOn;
    }


    public String getRegId() {
        return regId;
    }

    public void setRegId(String regId) {
        this.regId = regId;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public long getmPaySaldo() {
        return mPaySaldo;
    }

    public void setmPaySaldo(long mPaySaldo) {
        this.mPaySaldo = mPaySaldo;
    }
}
loginUser = realm.copyFromRealm(MangJekApplication.getInstance(this).getLoginUser());
这门私人课

if (response.isSuccessful()) {
                    if (response.body().getMessage().equals("found")) {
                        User user = response.body().getData().get(0);
                        Log.v("Data User ","- "+user.toString());

                        saveUser(user);

                        Intent intent = new Intent(SignInActivity.this, MainActivity.class);
                        startActivity(intent);
                        finish();
                    } else {
                        Toast.makeText(SignInActivity.this, "Username or wrong Password", Toast.LENGTH_SHORT).show();
                    }
private void saveUser(User user) {
        Realm realm = Realm.getDefaultInstance();
        realm.beginTransaction();
        realm.delete(User.class);
        realm.copyToRealm(user);
        realm.commitTransaction();


        MainApplication.getInstance(SignInActivity.this).setLoginUser(user);
    }
public class User extends RealmObject implements Serializable {

    @PrimaryKey
    @SerializedName("id")
    @Expose
    private String id;

    @SerializedName("first_name")
    @Expose
    private String first_name;

    @SerializedName("last_name")
    @Expose
    private String last_name;

    @SerializedName("email")
    @Expose
    private String email;

    @SerializedName("number")
    @Expose
    private String number;

    @SerializedName("password")
    @Expose
    private String password;

    @SerializedName("adress")
    @Expose
    private String adress;

    @SerializedName("created_on")
    @Expose
    private String createdOn;

    @SerializedName("reg_id")
    @Expose
    private String regId;

    @SerializedName("status")
    @Expose
    private String status;

    private long mPaySaldo;

    public String getId() {
        return id;
    }

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

    public String getFirstName() {
        return firstname;
    }

    public void setFirstName(String firstname) {
        this.firstname = firstname;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getEmail() {
        return email;
    }

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

    public String getNumber() {
        return Number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getAdress() {
        return alamat;
    }

    public void setAdress(String alamat) {
        this.alamat = alamat;
    }

    public String getCreatedOn() {
        return createdOn;
    }

    public void setCreatedOn(String createdOn) {
        this.createdOn = createdOn;
    }


    public String getRegId() {
        return regId;
    }

    public void setRegId(String regId) {
        this.regId = regId;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public long getmPaySaldo() {
        return mPaySaldo;
    }

    public void setmPaySaldo(long mPaySaldo) {
        this.mPaySaldo = mPaySaldo;
    }
}
loginUser = realm.copyFromRealm(MangJekApplication.getInstance(this).getLoginUser());
此json响应来自webservice

{"message":"found","data":[{"id":"U5","first_name":"Alexa","last_name":"Ferdiansyah","email":"admin@gmail.com","number":"098765432123","password":"dd94709528bb1c83d08f3088d4043f4742891f4f","addres":"niten","created_on":"2020-09-22 14:30:52","reg_id":"f1ZtyfkoRB6oUTKSeP-Zal:APA91bGwuLKoudLnZWL8UPT-HEdw-eCUAe9AIQBi2jbBVIe8TYN0luixtuYdCIoTkqaD0CDpcZju0heZ7BBOhyFPj-7Xq5WNLKDjEoNjSEsMAaSboVmGcA3nRgP-eezvb_1i3cfWMEbX","status":"1","saldo":"0"}]}
这是我的模型课

if (response.isSuccessful()) {
                    if (response.body().getMessage().equals("found")) {
                        User user = response.body().getData().get(0);
                        Log.v("Data User ","- "+user.toString());

                        saveUser(user);

                        Intent intent = new Intent(SignInActivity.this, MainActivity.class);
                        startActivity(intent);
                        finish();
                    } else {
                        Toast.makeText(SignInActivity.this, "Username or wrong Password", Toast.LENGTH_SHORT).show();
                    }
private void saveUser(User user) {
        Realm realm = Realm.getDefaultInstance();
        realm.beginTransaction();
        realm.delete(User.class);
        realm.copyToRealm(user);
        realm.commitTransaction();


        MainApplication.getInstance(SignInActivity.this).setLoginUser(user);
    }
public class User extends RealmObject implements Serializable {

    @PrimaryKey
    @SerializedName("id")
    @Expose
    private String id;

    @SerializedName("first_name")
    @Expose
    private String first_name;

    @SerializedName("last_name")
    @Expose
    private String last_name;

    @SerializedName("email")
    @Expose
    private String email;

    @SerializedName("number")
    @Expose
    private String number;

    @SerializedName("password")
    @Expose
    private String password;

    @SerializedName("adress")
    @Expose
    private String adress;

    @SerializedName("created_on")
    @Expose
    private String createdOn;

    @SerializedName("reg_id")
    @Expose
    private String regId;

    @SerializedName("status")
    @Expose
    private String status;

    private long mPaySaldo;

    public String getId() {
        return id;
    }

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

    public String getFirstName() {
        return firstname;
    }

    public void setFirstName(String firstname) {
        this.firstname = firstname;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getEmail() {
        return email;
    }

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

    public String getNumber() {
        return Number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getAdress() {
        return alamat;
    }

    public void setAdress(String alamat) {
        this.alamat = alamat;
    }

    public String getCreatedOn() {
        return createdOn;
    }

    public void setCreatedOn(String createdOn) {
        this.createdOn = createdOn;
    }


    public String getRegId() {
        return regId;
    }

    public void setRegId(String regId) {
        this.regId = regId;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public long getmPaySaldo() {
        return mPaySaldo;
    }

    public void setmPaySaldo(long mPaySaldo) {
        this.mPaySaldo = mPaySaldo;
    }
}
loginUser = realm.copyFromRealm(MangJekApplication.getInstance(this).getLoginUser());
这就是错误代码所在的位置

if (response.isSuccessful()) {
                    if (response.body().getMessage().equals("found")) {
                        User user = response.body().getData().get(0);
                        Log.v("Data User ","- "+user.toString());

                        saveUser(user);

                        Intent intent = new Intent(SignInActivity.this, MainActivity.class);
                        startActivity(intent);
                        finish();
                    } else {
                        Toast.makeText(SignInActivity.this, "Username or wrong Password", Toast.LENGTH_SHORT).show();
                    }
private void saveUser(User user) {
        Realm realm = Realm.getDefaultInstance();
        realm.beginTransaction();
        realm.delete(User.class);
        realm.copyToRealm(user);
        realm.commitTransaction();


        MainApplication.getInstance(SignInActivity.this).setLoginUser(user);
    }
public class User extends RealmObject implements Serializable {

    @PrimaryKey
    @SerializedName("id")
    @Expose
    private String id;

    @SerializedName("first_name")
    @Expose
    private String first_name;

    @SerializedName("last_name")
    @Expose
    private String last_name;

    @SerializedName("email")
    @Expose
    private String email;

    @SerializedName("number")
    @Expose
    private String number;

    @SerializedName("password")
    @Expose
    private String password;

    @SerializedName("adress")
    @Expose
    private String adress;

    @SerializedName("created_on")
    @Expose
    private String createdOn;

    @SerializedName("reg_id")
    @Expose
    private String regId;

    @SerializedName("status")
    @Expose
    private String status;

    private long mPaySaldo;

    public String getId() {
        return id;
    }

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

    public String getFirstName() {
        return firstname;
    }

    public void setFirstName(String firstname) {
        this.firstname = firstname;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getEmail() {
        return email;
    }

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

    public String getNumber() {
        return Number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getAdress() {
        return alamat;
    }

    public void setAdress(String alamat) {
        this.alamat = alamat;
    }

    public String getCreatedOn() {
        return createdOn;
    }

    public void setCreatedOn(String createdOn) {
        this.createdOn = createdOn;
    }


    public String getRegId() {
        return regId;
    }

    public void setRegId(String regId) {
        this.regId = regId;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public long getmPaySaldo() {
        return mPaySaldo;
    }

    public void setmPaySaldo(long mPaySaldo) {
        this.mPaySaldo = mPaySaldo;
    }
}
loginUser = realm.copyFromRealm(MangJekApplication.getInstance(this).getLoginUser());
并且该错误

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.alexa.customer, PID: 25602
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.alexa.customer/com.alexa.customer.mFood.BookingActivity}: java.lang.IllegalArgumentException: Only valid managed objects can be copied from Realm.
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2315)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2375)
        at android.app.ActivityThread.access$900(ActivityThread.java:147)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5253)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:913)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:708)
     Caused by: java.lang.IllegalArgumentException: Only valid managed objects can be copied from Realm.
        at io.realm.Realm.checkValidObjectForDetach(Realm.java:1745)
        at io.realm.Realm.copyFromRealm(Realm.java:1418)
        at io.realm.Realm.copyFromRealm(Realm.java:1391)
        at com.alexa.customer.mFood.BookingActivity.onCreate(BookingActivity.java:115)
        at android.app.Activity.performCreate(Activity.java:5982)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2268)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2375) 
        at android.app.ActivityThread.access$900(ActivityThread.java:147) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:135) 
        at android.app.ActivityThread.main(ActivityThread.java:5253) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:913) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:708) 

有人能帮我吗?