realm-java: A RealmObject with no @PrimaryKey cannot be updated

A developer of VCNC encountered the following error message. He uses Realm version 0.84.1 and thinks that RAnniversaryView already has a primary key field.

Non-fatal Exception: java.lang.IllegalArgumentException: A RealmObject with no @PrimaryKey cannot be updated: class kr.co.vcnc.android.couple.model.viewmodel.RAnniversaryView
       at io.realm.Realm.checkHasPrimaryKey(Realm.java:1144)
       at io.realm.Realm.copyToRealmOrUpdate(Realm.java:765)
       at io.realm.Realm.copyToRealmOrUpdate(Realm.java:811)
       at kr.co.vcnc.android.couple.feature.home.HomeController$2.lambda$call$813(HomeController.java:214)
       at kr.co.vcnc.android.couple.feature.home.HomeController$2.lambda$null$812(HomeController.java)
       at kr.co.vcnc.android.couple.feature.home.HomeController$2$$Lambda$2.run(Unknown Source)
       at kr.co.vcnc.android.couple.realm.RealmRunnable.lambda$transaction$996(RealmRunnable.java:35)
       at kr.co.vcnc.android.couple.realm.RealmRunnable.transaction(RealmRunnable.java)
       at kr.co.vcnc.android.couple.realm.RealmRunnable$$Lambda$2.run(Unknown Source)
       at kr.co.vcnc.android.couple.realm.RealmRunnable.transaction(RealmRunnable.java:45)
       at kr.co.vcnc.android.couple.realm.RealmRunnable.transaction(RealmRunnable.java:34)
       at kr.co.vcnc.android.couple.feature.home.HomeController$2.call(HomeController.java:205)
       at kr.co.vcnc.android.couple.feature.home.HomeController$2.call(HomeController.java:124)
       at kr.co.vcnc.android.couple.rx.ObservableZygote$1.call(ObservableZygote.java:49)
       at kr.co.vcnc.android.couple.rx.ObservableZygote$1.call(ObservableZygote.java:45)
       at rx.Observable$1.call(Observable.java:144)
       at rx.Observable$1.call(Observable.java:136)
       at rx.Observable$1.call(Observable.java:144)
       at rx.Observable$1.call(Observable.java:136)
       at rx.Observable$1.call(Observable.java:144)
       at rx.Observable$1.call(Observable.java:136)
       at rx.Observable.unsafeSubscribe(Observable.java:7466)
       at rx.internal.operators.OperatorSubscribeOn$1$1.call(OperatorSubscribeOn.java:62)
       at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:47)
       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
       at java.lang.Thread.run(Thread.java:841)

About this issue

  • Original URL
  • State: closed
  • Created 9 years ago
  • Comments: 43 (24 by maintainers)

Most upvoted comments

use import io.realm.annotations.PrimaryKey;

instead of

import androidx.room.PrimaryKey;

@beeender I am sorry that I could not reproduce the error after my teams update the realm to the latest version.