Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A RealmObject with no @PrimaryKey cannot be updated #1845

Closed
dalinaum opened this issue Nov 27, 2015 · 43 comments
Closed

A RealmObject with no @PrimaryKey cannot be updated #1845

dalinaum opened this issue Nov 27, 2015 · 43 comments
Labels

Comments

@dalinaum
Copy link
Contributor

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)
@zaki50
Copy link
Contributor

zaki50 commented Nov 27, 2015

@dalinaum Was the realm file created Realm 0.84.1 or older? If so, I suspect that the cause is #1775

@dalinaum
Copy link
Contributor Author

@zaki50 If they don't update their version to Realm 0.84.2 or avobe yet, isn't it related to that issue?

@beeender
Copy link
Contributor

This issue should not related with #1775. Since that one only happens when you open the Realm Instance.

This issues is more like trying to update a RealmObject without PK declared.

How does RAnniversaryView look like?

@swkimme
Copy link

swkimme commented Nov 27, 2015

Hi, all, I'm Kevin from VCNC, who reported that issue to @dalinaum.

RAnniversaryView is look like this.

public class RAnniversaryView extends RealmObject {
    private RAnniversary model;

    @PrimaryKey
    private String key;

    private Integer order;

    public RAnniversaryView() {
    }

    public RAnniversaryView(CAnniversaryView model) {
        if (model.getModel() != null) {
            setModel(new RAnniversary(model.getModel()));
        }
        setKey(model.getKey());
        setOrder(model.getOrder());
    }

    public void setModel(RAnniversary model) {
        this.model = model;
    }

    public RAnniversary getModel() {
        return model;
    }

@zaki50 and I guess realm file is not created on older version of realm.

I'm putting little more information from crash analytics system. Hope it helps.

screen shot 2015-11-27 at 5 14 03 pm

@zaki50
Copy link
Contributor

zaki50 commented Nov 27, 2015

@beeender you are right. #1775 is not related this issue.

@swkimme
Copy link

swkimme commented Nov 27, 2015

Attach devices.

screen shot 2015-11-27 at 5 41 50 pm

screen shot 2015-11-27 at 5 41 55 pm

screen shot 2015-11-27 at 5 41 59 pm

@dalinaum
Copy link
Contributor Author

  • SHV E330S: Samsung Galaxy S4 LTE-A for SKT (SK Telecome, Korea)
  • SM G906K: Samsung Galaxy S5 LTE-A for KT (Korea Telecome, Korea)
  • SM G906S: Samsung Galaxy S5 LTE-A for SKT
  • LG F400S: LG G3 LTE-A for SKT
  • LG F460S: LG G3 Cat6 for SKT
  • LG F350S: LG G Pro 2 for SKT
  • IM A900L: Pantech VEGA Secret UP fot LG U+
  • IM A890L: Pantech VEGA Secret Note for LG U+

@kneth
Copy link
Member

kneth commented Dec 2, 2015

@swkimme Sorry for the late reply. I was wondering if you can share a code snippet so we can see how you call copyToRealmOrUpdate(). Can you get hold of a copy of a Realm file so we can investigate it?

@kneth kneth added the Pending label Dec 2, 2015
@swkimme
Copy link

swkimme commented Dec 3, 2015

@kneth
Here it is.

if (homeCardsView.getAnniversariesWithOrders() != null) {
                    RealmRunnable.transaction(realm -> {
                        CAnniversariesWithOrders anniversariesWithOrders = homeCardsView.getAnniversariesWithOrders();
                        CCollection<CAnniversary> anniversaries = anniversariesWithOrders.getAnniversaries();
                        final List<String> orders = homeCardsView.getAnniversariesWithOrders().getOrders();
                        fj.data.List<RAnniversaryView> rAnniversaryViews = iterableList(anniversaries.getData())
                                .map(item -> new CAnniversaryView(item, orders.indexOf(item.getId())))
                                .map(RAnniversaryView::new);

                        realm.clear(RAnniversaryView.class);
                        realm.copyToRealmOrUpdate(rAnniversaryViews);
                    });
                }

@swkimme
Copy link

swkimme commented Dec 3, 2015

@kneth
For realm files, I can't upload zip file here, I've sent it to @dalinaum.
I'll sent it to you, too.

@tebica
Copy link
Contributor

tebica commented Dec 3, 2015

@kneth I've sent it to you again for just in case @swkimme @dalinaum

@kneth kneth removed the Pending label Dec 3, 2015
@kneth
Copy link
Member

kneth commented Dec 3, 2015

@swkimme I haven't been reproduce the issue yet :-(

@kneth
Copy link
Member

kneth commented Dec 16, 2015

@swkimme I'm not sure if it will help you but we are getting closer to RxJava support - see #1710.

@kneth kneth added the Pending label Dec 16, 2015
@kneth
Copy link
Member

kneth commented Feb 11, 2016

@swkimme Did you have a chance to add some logging of rAnniversaryViews so we can see why the primary key is missing?

@cmelchior
Copy link
Contributor

Closing due to no response.

@david201601
Copy link

Encounter the same issue on devices 4.1.1 and 4.2.2 where it throws no PrimaryKey exception when there is. Using Realm 8.0.0. However, it works on higher version of Android.

@beeender
Copy link
Contributor

@david201601 Can this be reproduced in your side? Or you just got the crash report from fabric?

@david201601
Copy link

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

@engr-erum
Copy link

I am getting same issue .can someone pls repond me java.lang.IllegalArgumentException: A RealmObject with no @PrimaryKey cannot be updated:
http://jsoneditoronline.org/?id=cc5a403d1bbd933c250069a9221fcc02

@Zhuinden
Copy link
Contributor

Zhuinden commented Aug 4, 2017

@engr-erum if you do not have a @PrimaryKey then you should have createAllFromJson https://realm.io/docs/java/latest/api/io/realm/Realm.html#createAllFromJson-java.lang.Class-java.io.InputStream-

@engr-erum
Copy link

@Zhuinden so it will delete old data from table and create everytime or it will append rows everytime ?

@Zhuinden
Copy link
Contributor

Zhuinden commented Aug 4, 2017

@engr-erum actually I think it will just append rows everytime.

@engr-erum
Copy link

@Zhuinden can u pls help me how to avoid appending rows everytime.As i already added primary key in model class but its not working.Here is gist https://gist.github.com/engr-erum/a91cad1302de33fae19813a5e2814012

@Zhuinden
Copy link
Contributor

Zhuinden commented Aug 4, 2017

@engr-erum if you need to customize the persistence by that you want to ignore fields in the JSON, then you probably should just use GSON to parcel to real classes and then map out what you need to Realm.

@yuvaraj119
Copy link

yuvaraj119 commented Jan 16, 2018

I got the same issue with kotlin and realm latest version

`01-16 20:44:34.557 3349-3349/com.appname E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.appname , PID: 3349
java.lang.RuntimeException: Unable to resume activity {com.appname /com.appname.ui.CameraAddNextStepActivity}: java.lang.IllegalArgumentException: UploadData is not part of the schema for this Realm
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3103)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3134)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2481)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.IllegalArgumentException: UploadData is not part of the schema for this Realm
at io.realm.internal.modules.CompositeMediator.getMediator(CompositeMediator.java:169)
at io.realm.internal.modules.CompositeMediator.getSimpleClassNameImpl(CompositeMediator.java:87)
at io.realm.internal.RealmProxyMediator.getSimpleClassName(RealmProxyMediator.java:79)
at io.realm.Realm.checkHasPrimaryKey(Realm.java:1609)
at io.realm.Realm.copyToRealmOrUpdate(Realm.java:1013)
at com.appname .storage.RealmController.insertUploadData(RealmController.java:80)
at com.appname .ui.CameraAddNextStepActivity.checkOcrSignature(CameraAddNextStepActivity.kt:323)
at com.appname .ui.CameraAddNextStepActivity.createBroadcastManager(CameraAddNextStepActivity.kt:290)
at com.appname .ui.CameraAddNextStepActivity.onResume(CameraAddNextStepActivity.kt:283)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1258)
at android.app.Activity.performResume(Activity.java:6327)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3092)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3134) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2481) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

@ RealmClass
class UploadData : RealmModel{

@PrimaryKey
var id_: String = UUID.randomUUID().toString()
var awsStatus: Int = -1
var serverStatus: Int = -1
var addVehicleImagesBlob: AddVehicleImagesBlob = AddVehicleImagesBlob()

}

build.gradle:
apply plugin: 'com.android.application'
apply plugin: 'realm-android'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

dependencies{
kaptAndroidTest 'io.realm:realm-annotations:2.2.1'
kaptAndroidTest 'io.realm:realm-annotations-processor:2.2.1'

//kotlin
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

}

app level build.gradle:
classpath "io.realm:realm-gradle-plugin:4.3.1"

`

@Zhuinden
Copy link
Contributor

@yuvaraj119 apply realm-android after kotlin-kapt (and kotlin-android and co)

@yuvaraj119
Copy link

yuvaraj119 commented Jan 16, 2018

i tried adding after kotlin-kapt still same issue

apply plugin: 'com.android.application'
apply plugin: 'kotlin-kapt'
apply plugin: 'realm-android'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

when i add like this as below
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'realm-android'

it throws error :
Information:Gradle tasks [:app:assembleDevDebug]
Error:error: Field "addVehicleImagesBlob" with type "com.appname.api.model.requests.body.vehicle.AddVehicleImagesBlob" cannot be @required or @NotNull.
Error:Execution failed for task ':app:kaptDevDebugKotlin'.

Internal compiler error. See log for more details
Information:BUILD FAILED in 47s
Information:2 errors
Information:0 warnings
Information:See complete output in console

where my addvehicleImageblob class :
@ RealmClass
class AddVehicleImagesBlob : RealmModel{

@SerializedName("VehicleImageId")
var vehicleImageId: String = ""
@SerializedName("VehicleInfoId")
var vehicleInfoId: String = ""
@SerializedName("VehicleName")
var vehicleName: String = ""

}

@Zhuinden
Copy link
Contributor

Zhuinden commented Jan 16, 2018

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'realm-android'

But if you added the class and didn't specify a migration + schema version bump, then that can cause this as well.

@yuvaraj119
Copy link

yuvaraj119 commented Jan 17, 2018

when i add like this as below
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'realm-android'

it throws error :
Information:Gradle tasks [:app:assembleDevDebug]
Error:error: Field "addVehicleImagesBlob" with type "com.appname.api.model.requests.body.vehicle.AddVehicleImagesBlob" cannot be @required or @NotNull.
Error:Execution failed for task ':app:kaptDevDebugKotlin'.

Internal compiler error. See log for more details
Information:BUILD FAILED in 47s
Information:2 errors
Information:0 warnings
Information:See complete output in console

where my addvehicleImageblob class :
@ RealmClass
class AddVehicleImagesBlob : RealmModel{

@SerializedName("VehicleImageId")
var vehicleImageId: String = ""
@SerializedName("VehicleInfoId")
var vehicleInfoId: String = ""
@SerializedName("VehicleName")
var vehicleName: String = ""

}

i initialize the realm and migration is not needed:
val realmConfiguration = RealmConfiguration.Builder()
.name(Realm.DEFAULT_REALM_NAME)
.schemaVersion(0)
.deleteRealmIfMigrationNeeded()
.build()
Realm.setDefaultConfiguration(realmConfiguration)

@yuvaraj119
Copy link

yuvaraj119 commented Jan 17, 2018

facing this error :

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'realm-android'

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:support-v4:26.1.0'

kaptAndroidTest 'io.realm:realm-annotations:4.3.1'
kaptAndroidTest 'io.realm:realm-annotations-processor:4.3.1'

}

Information:Gradle tasks [:app:assembleDevDebug]
Error:org.jetbrains.kotlin.kapt3.diagnostic.KaptError: Error while annotation processing
Information:See complete output in console
Information:0 warnings
Information:1 error

@Zhuinden
Copy link
Contributor

@yuvaraj119

the error message tells you exactly:

Information:Gradle tasks [:app:assembleDevDebug]
Error:error: Field "addVehicleImagesBlob" with type "com.appname.api.model.requests.body.vehicle.AddVehicleImagesBlob" cannot be @required or @NotNull.
Error:Execution failed for task ':app:kaptDevDebugKotlin'.

This means that in

@ RealmClass
class UploadData : RealmModel{

@PrimaryKey
var id_: String = UUID.randomUUID().toString()
var awsStatus: Int = -1
var serverStatus: Int = -1
var addVehicleImagesBlob: AddVehicleImagesBlob = AddVehicleImagesBlob() // <-- !!!
}

That cannot be NonNull, so it should be

@ RealmClass
class UploadData : RealmModel{

@PrimaryKey
var id_: String = UUID.randomUUID().toString()
var awsStatus: Int = -1
var serverStatus: Int = -1
var addVehicleImagesBlob: AddVehicleImagesBlob? = AddVehicleImagesBlob() // <-- !!!
}

@yuvaraj119
Copy link

if i use "apply plugin: 'kotlin-kapt'" i am getting this error
Error:org.jetbrains.kotlin.kapt3.diagnostic.KaptError: Error while annotation processing

after removing "apply plugin: 'kotlin-kapt'"

great below line fixed the older issue :
var addVehicleImagesBlob: AddVehicleImagesBlob? = AddVehicleImagesBlob()

but now i am getting this error now. It says to use java.lang.String instead of kotlin String

Error:19:10:23.808 [ERROR] [system.err] Note: Processing class AddVehicleImagesBlob
19:10:23.808 [ERROR] [system.err] error: Element type of RealmList must be a class implementing 'RealmModel' or one of the 'java.lang.String', 'byte[]', 'java.lang.Boolean', 'java.lang.Long', 'java.lang.Integer', 'java.lang.Short', 'java.lang.Byte', 'java.lang.Double', 'java.lang.Float', 'java.util.Date'.
19:10:24.200 [ERROR] [system.err] 1 error
19:10:24.217 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
19:10:24.217 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
19:10:24.217 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
19:10:24.217 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
19:10:24.217 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Execution failed for task ':app:compileDevDebugJavaWithJavac'.
19:10:24.217 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > Compilation failed; see the compiler error output for details.
19:10:24.217 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
19:10:24.217 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Exception is:
19:10:24.217 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileDevDebugJavaWithJavac'.
19:10:24.217 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
19:10:24.217 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)
19:10:24.218 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Caused by: org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details.
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:51)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:36)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:99)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:52)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:37)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:35)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:25)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.compile.incremental.IncrementalCompilationFinalizer.execute(IncrementalCompilationFinalizer.java:39)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.compile.incremental.IncrementalCompilationFinalizer.execute(IncrementalCompilationFinalizer.java:24)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:198)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:129)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at com.android.build.gradle.tasks.factory.AndroidJavaCompile.compile(AndroidJavaCompile.java:100)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:173)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:121)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
19:10:24.219 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
19:10:24.220 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)
19:10:24.220 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
19:10:24.220 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] ... 27 more
19:10:24.220 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
19:10:24.220 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
19:10:24.220 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Get more help at https://help.gradle.org
19:10:24.220 [ERROR] [org.gradle.internal.buildevents.BuildResultLogger]
19:10:24.220 [ERROR] [org.gradle.internal.buildevents.BuildResultLogger] BUILD FAILED in 7s

@ RealmClass
class AddVehicleImagesBlob : RealmModel,Cloneable{

@SerializedName("VehicleImageId")
var vehicleImageId: String = ""
@SerializedName("DamageInfoIDs")
var damageInfoIDs: RealmList<String> = RealmList()
@SerializedName("DamageInfos")
var damageInfo: RealmList<DamageType> = RealmList()
var isUploadedToServer : Boolean = false

@Throws(CloneNotSupportedException::class)
override public fun clone(): Any {
    return super.clone()
}

}

@cmelchior
Copy link
Contributor

Processing class AddVehicleImagesBlob
19:10:23.808 [ERROR] [system.err] error: Element type of RealmList must be a class implementing 'RealmModel' or one of the 'java.lang.String', 'byte[]', 'java.lang.Boolean', 'java.lang.Long', 'java.lang.Integer', 'java.lang.Short', 'java.lang.Byte', 'java.lang.Double', 'java.lang.Float', 'java.util.Date'.

Fix this. It looks like you have a RealmList of unsupported types. Probably a model class that doesn't extend RealmObject or RealmModel

@Zhuinden
Copy link
Contributor

DamageType sounds like it is not a valid realmObject

@yuvaraj119
Copy link

yuvaraj119 commented Jan 17, 2018

No DamageType class too extends RealmModel

@ RealmClass
class DamageType : RealmModel{

@SerializedName("DamageDescription")
var damageDescription: String = ""
@SerializedName("DamageId")
var damageId: String = ""
@SerializedName("DamageTypeId")
var DamageTypeId: String = ""
@SerializedName("TenantId")
var TenantId: String = ""
@SerializedName("CreateDate")
var createDate: String = ""
@SerializedName("EditDate")
var editDate: String = ""

}

@Zhuinden
Copy link
Contributor

You mustn't remove apply plugin: 'kotlin-kapt', it will not work if you remove it.

@yuvaraj119
Copy link

if i add apply plugin: 'kotlin-kapt' it throws this error
"Error:org.jetbrains.kotlin.kapt3.diagnostic.KaptError: Error while annotation processing"

@Zhuinden
Copy link
Contributor

Zhuinden commented Jan 17, 2018

Well of course, if you add that, you'll see that you have a bug in your code.

You should also include the actual error message, not just the first line

@yuvaraj119
Copy link

@Zhuinden @cmelchior I have fixed the issue by making my all model class as open which extends RealmModel in kotlin.

Great thanks for your instant support.

@Zhuinden
Copy link
Contributor

Zhuinden commented Feb 5, 2018

... It shouldn't have compiled if the RealmObjects were not all open 😮

@abhilashawildnet
Copy link

//build gradle (app)
apply plugin: 'com.android.application'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android'
apply plugin: 'realm-android'
apply plugin: 'kotlin-android-extensions'

realm {
kotlinExtensionsEnabled = true
}
//build gradle (project)
classpath "io.realm:realm-gradle-plugin:5.9.0"

@RealmClass
open class ProfileDataBean :RealmObject() {
@required
@PrimaryKey
@SerializedName("email")
@expose
open var email: String = ""
@SerializedName("id")
@expose
open var id: Int? = null
}

@cmelchior
Copy link
Contributor

cmelchior commented Apr 14, 2021

Hi, Please create a new issue instead of commenting on an old closed issue. That way it will be easier to help you

@avinash396i
Copy link

avinash396i commented Jan 11, 2022

use import io.realm.annotations.PrimaryKey;

instead of

import androidx.room.PrimaryKey;

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 15, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests