我在调用Retrofit服务呼叫时遇到错误/异常。在我的项目中,在Realm和retrofit版本升级后,我收到了这个异常,目前我正在使用当前版本的rxJava,realm和Retrofit。
我使用JacksonConverterFactory并创建了我自己的对象映射器类。
请帮助我们解决这个问题。
P.N :- HousingComplex is a model class and extends as realmObject
public class HousingComplex extends RealmObject {
Boolean isAddressAllowed;
Boolean isLocalityAllowed;
Boolean isPetsAllowed;
Boolean isCityAllowed;
Boolean isNameAllowed;
String metadata;
public Boolean getAddressAllowed() {
return isAddressAllowed;
}
public void setAddressAllowed(Boolean addressAllowed) {
isAddressAllowed = addressAllowed;
}
public Boolean getLocalityAllowed() {
return isLocalityAllowed;
}
public void setlocalityAllowed(Boolean localityAllowed) {
isLocalityAllowed = localityAllowed;
}
public Boolean getPetsAllowed() {
return isPetsAllowed;
}
public void setPetsAllowed(Boolean petsAllowed) {
isPetsAllowed = petsAllowed;
}
public Boolean getCityAllowed() {
return isCityAllowed;
}
public void setCityAllowed(Boolean cityAllowed) {
isCityAllowed = cityAllowed;
}
public Boolean getNameAllowed() {
return isNameAllowed;
}
public void setNameAllowed(Boolean nameAllowed) {
isNameAllowed = nameAllowed;
}
public String getMetadata() {
return metadata;
}
public void setMetadata(String metadata) {
this.metadata = metadata;
}
}异常
07-03 18:23:12.950 28342-28384/in.zenify.android.internal.debug W/System.err: java.lang.RuntimeException: Unable to convert in.temp.android.internal.mediaCollection.webservice.GroupObject@5230c4a to RequestBody
07-03 18:23:12.951 28342-28384/in.temp.android.internal.debug W/System.err: at retrofit2.ParameterHandler$Body.apply(ParameterHandler.java:358)
at retrofit2.ServiceMethod.toRequest(ServiceMethod.java:111)
at retrofit2.OkHttpCall.createRawCall(OkHttpCall.java:184)
07-03 18:23:12.952 28342-28384/in.temp.android.internal.debug W/System.err: at retrofit2.OkHttpCall.execute(OkHttpCall.java:168)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall.execute(ExecutorCallAdapterFactory.java:91)
at in.internal.android.internal.mediaCollection.MediaCollectionTask$5.upload(MediaCollectionTask.java:347)
at in.internal.android.internal.mediaCollection.MediaCollectionTask$5.upload(MediaCollectionTask.java:308)
at in.internal.android.internal.core.sync.ZenSyncAdapter.upSync(ZenSyncAdapter.java:154)
at in.internal.android.internal.core.sync.ZenSyncAdapter.onPerformSync(ZenSyncAdapter.java:60)
at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:272)
07-03 18:23:12.954 28342-28384/in.internal.android.internal.debug W/System.err: Caused by: com.fasterxml.jackson.databind.JsonMappingException: HousingComplex doesn't have a primary key. (through reference chain: in.temp.android.internal.mediaCollection.webservice.GroupObject["mediaList"]->java.util.HashMap["MAIN_DOOR_1_UfffX6DZR-iljygYhvIzKA"]->java.util.ArrayList[0]->in.internal.android.internal.mediaCollection.webservice.MediaObject["mediaTagList"]->io.realm.RealmList[0]->io.realm.in_temp_android_internal_models_TagRealmProxy["realm"]->io.realm.Realm["schema"]->io.realm.ImmutableRealmSchema["all"]->java.util.LinkedHashSet[4]->io.realm.ImmutableRealmObjectSchema["primaryKey"])
07-03 18:23:12.963 28342-28384/in.temp.android.internal.debug W/System.err: at com.fasterxml.jackson.databind.ser.std.StdSerializer.wrapAndThrow(StdSerializer.java:342)
07-03 18:23:12.964 28342-28384/in.temp.android.internal.debug W/System.err: at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:686)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149)
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:112)
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:25)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:672)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:678)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:672)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:678)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:672)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:678)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149)
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:112)
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:25)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:672)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:678)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)
07-03 18:23:12.965 28342-28384/in.temp.android.internal.debug W/System.err: at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:616)
at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:519)
at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:31)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:672)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:678)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:253)
at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1425)
at com.fasterxml.jackson.databind.ObjectWriter._configAndWriteValue(ObjectWriter.java:1129)
at com.fasterxml.jackson.databind.ObjectWriter.writeValueAsBytes(ObjectWriter.java:1025)
at retrofit2.converter.jackson.JacksonRequestBodyConverter.convert(JacksonRequestBodyConverter.java:34)
at retrofit2.converter.jackson.JacksonRequestBodyConverter.convert(JacksonRequestBodyConverter.java:24)
at retrofit2.ParameterHandler$Body.apply(ParameterHandler.java:356)
... 9 more
Caused by: java.lang.IllegalStateException: HousingComplex doesn't have a primary key.
07-03 18:23:12.967 28342-28384/in.temp.android.internal.debug W/System.err: at io.realm.RealmObjectSchema.getPrimaryKey(RealmObjectSchema.java:377)
at java.lang.reflect.Method.invoke(Native Method)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:633)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:678)
... 44 morehttps://stackoverflow.com/questions/51325922
复制相似问题