dvr*_*vrm 6 android gson robospice
我正在使用RoboSpice和GsonSpringAndroidSpiceService.我还想添加Realm来保存数据.
问题是,在每个对象都必须扩展realmObject,但是roboSpice中的gson试图解析realmObject而不是忽略它.
我试图添加排除状态:
Run Code Online (Sandbox Code Playgroud)Gson gson = new GsonBuilder() .setExclusionStrategies(new ExclusionStrategy() { @Override public boolean shouldSkipField(FieldAttributes f) { return f.getDeclaringClass().equals(RealmObject.class); } @Override public boolean shouldSkipClass(Class<?> clazz) { return false; } }) .create();
然后
Run Code Online (Sandbox Code Playgroud)GsonHttpMessageConverter gsonHttpMessageConverter = new GsonHttpMessageConverter(gson);
还尝试(单独)将@expose添加到对象中的字段,和
Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
Run Code Online (Sandbox Code Playgroud)
在两种方式我有同样的错误:
09-07 11:21:04.615 8443-8443/com.mm.rsApp D/OpenGLRenderer:启用调试模式0 09-07 11:21:04.620 8443-8443/com.mm.rsApp D // SpiceManager.java:1018 :11:21:04.625 main服务范围:GsonSpiceService 09-07 11:21:04.625 8443-8466/com.mm.rsApp D // SpiceManager.java:1133:11:21:04.628 Thread-16362绑定好.09-07 11:21:04.690 8443-8443/com.mm.rsApp I /时间轴:时间轴:Activity_idle id:android.os.BinderProxy@41b8f088时间:525639153 09-07 11:21:21.890 8443-8466/com. mm.rsApp D // SpiceManager.java:245:11:21:21.896 Thread-16362向服务发送请求:CachedSpiceRequest 09-07 11:21:21.895 8443-8466/com.mm.rsApp D // RequestProcessor.java: 70:11:21:21.898 Thread-16362向队列1103121632添加请求:CachedSpiceRequest [requestCacheKey = login,cacheDuration = -1,spiceRequest = com.mm.rsApp.requests.BaseRequest @ 41d700c0] size is 0 09-07 11:21:21.900 8443-8466/com.mm.rsApp D // RequestProcessor.java:89:11:21:21.902 Thread-16362为类型类com.mm添加条目. rsApp.model.LoginResult和cacheKey登录.09-07 11:21:21.900 8443-8466/com.mm.rsApp D // RequestProgressManager.java:54:11:21:21.904在向现有请求添加请求侦听器时发现了Thread-16362请求.09-07 11:21:21.900 8443-8466/com.mm.rsApp D // RequestProgressManager.java:64:11:21:21.905 Thread-16362发送进度PENDING 09-07 11:21:21.905 8443-8609/com .mm.rsApp d // RequestRunner.java:68:11:21:21.908线程16369处理请求:CachedSpiceRequest [requestCacheKey =登录,cacheDuration = -1,spiceRequest=com.mm.rsApp.requests.BaseRequest@41d700c0] 09 -07 11:21:21.905 8443-8609/com.mm.rsApp D // RequestRunner.java:114:11:21:21 910 Thread-16369缓存内容不可用或已过期或已禁用09-07 11:21:21.910 8443-8609/com.mm.rsApp D // RequestRunner.java:128:11:21:21.913 Thread-16369调用netwok请求.09-07 11:21:21.910 8443-8609/com.mm.rsApp D // RequestProgressManager.java:64:11:21:21.914 Thread-16369发送进度LOADING_FROM_NETWORK 09-07 11:21:21.915 8443-8443/com .mm.rsApp V // DefaultRequestProgressReporter.java:110:11:21:21.917 main通知1个进步的听众com.octo.android.robospice.request.listener.RequestProgress@41d71138 09-07 11:21:21.915 8443-8443 /com.mm.rsApp V // DefaultRequestProgressReporter.java:110:11:21:21.921 main通知1个进步的听众com.octo.android.robospice.request.listener.RequestProgress@41d83c50 09-07 11:21:27.255 8443 -8609/com.mm.rsApp D // RequestRunner.java:131:11:21:27 257 Thread-16369网络请求呼叫已结束.09-07 11:21:27.255 8443-8609/com.mm.rsApp D // RequestRunner.java:151:11:21:27.259 Thread-16369开始缓存内容... 09-07 11:21:27.260 8443- 8609/com.mm.rsApp D // RequestProgressManager.java:64:11:21:27.262 Thread-16369发送进度WRITING_TO_CACHE 09-07 11:21:27.260 8443-8443/com.mm.rsApp V // DefaultRequestProgressReporter.java :110:11:21:27.265主要通知1名进步听众com.octo.android.robospice.request.listener.RequestProgress@41e12c08 09-07 11:21:27.440 8443-8609/com.mm.rsApp I/dalvikvm: threadid = 18:堆栈溢出,调用Lcom/google/gson/internal/$ Gson $ Types; .resolve:LLLL 09-07 11:21:27.440 8443-8609/com.mm.rsApp I/dalvikvm:方法要求96 + 20 + 12 = 128字节,fp为0x5deea348(左72)09-07 11:21:27.440 8443-8609/com.mm. java.lang.StackOverflowError atcom.google.gson.internal.$ Gson $ Types.resolve($ Gson $ Types.java:381)在com.google.gson.internal.$ Gson $ Types.resolve($ Gson $ Types.java:376)at at com.google.gson.internal.$ Gson $ Types.resolve($ Gson $ Types.java:381)在com.google.gson.internal.$ Gson $ Types.resolve($ Gson $ Types.java:376)at at com.google.gson.internal.$ Gson $ Types.resolve($ Gson $ Types.java:381)在com.google.gson.internal.$ Gson $ Types.resolve($ Gson $ Types.java:376)at at com.google.gson.internal.$ Gson $ Types.resolve($ Gson $ Types.java:381)在com.google.gson.internal.$ Gson $ Types.resolve($ Gson $ Types.java:376)at at com.google.gson.internal.$ Gson $ Types.resolve($ Gson $ Types.java:381)在com.google.gson.internal.$ Gson $ Types.resolve($ Gson $ Types.java:376)at at com.google.gson.com.google.gson上的com.google.gson.internal.$ Gson $ Types.resolve($ Gson $ Types.java:376)中的$ Gson $ Types.resolve($ Gson $ Types.java:381). com.google.gson上的com.google.gson.internal.$ Gson $ Types.resolve($ Gson $ Types.java:376)中的$ Gson $ Types.resolve($ Gson $ Types.java:381). com.google.gson上的com.google.gson.internal.$ Gson $ Types.resolve($ Gson $ Types.java:376)中的$ Gson $ Types.resolve($ Gson $ Types.java:381). com.google.gson上的com.google.gson.internal.$ Gson $ Types.resolve($ Gson $ Types.java:376)中的$ Gson $ Types.resolve($ Gson $ Types.java:381). com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields中的$ Gson $ Types.resolve($ Gson $ Types.java:356)(ReflectiveTypeAdapterFactory.java:141)com.google.gson.internal.bind.RewlectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:83)at com.google.gson.Gson.getAdapter(Gson.java:359)com.google.gson.internal.bind .ReflectiveTypeAdapterFactory.getFieldAdapter(ReflectiveTypeAdapterFactory.java:122)位于com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.access $ 100(ReflectiveTypeAdapterFactory.java:46)com.google.gson.internal.bind.ReflectiveTypeAdapterFactory $ 1.(ReflectiveTypeAdapterFactory. java:92)com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:91)com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:142)com.google .gson.com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getFieldAdapter(ReflectiveTypeAdapterFactory.java)中的com.google.gson.Gson.getAdapter(Gson.java:359)中的internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:83): 122)com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.access $ 100(ReflectiveTypeAdapterFactory.java:46)com.google上的com.google.gson.internal.bind.ReflectiveTypeAdapterFactory $ 1.(ReflectiveTypeAdapterFactory.java:92). gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:91)位于com.google.gson.internal.bind的com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:142).位于com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getFieldAdapter(ReflectiveTypeAdapterFactory.java:122)的com.google.gson.Gson.getAdapter(Gson.java:359)上的ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:83)位于com.google.gson.internal的com.google.gson.internal.bind.ReflectiveTypeAdapterFactory $ 1.(ReflectiveTypeAdapterFactory.java:92).google.gson.internal.bind.ReflectiveTypeAdapterFactory.access $ 100(ReflectiveTypeAdapterFactory.java:46). bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:91)位于com.google.gson.internal.bind.ReflectiveTypeAdapterFactory的com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:142).在com.google.gson.Gson.getAda上创建(ReflectiveTypeAdapterFactory.java:83)
请帮助我知道为什么我会收到此错误,我该如何解决它
我用Robospice与Retrofit和Realm.
我通过覆盖createConverter()我的Service课程来解决它RetrofitGsonSpiceService.不幸的是,我不能说更清楚因为我没有用过GsonSpringAndroidSpiceService.
所以在我的Service课上它看起来像这样:
@Override
protected Converter createConverter() {
Gson gson = new GsonBuilder()
.setExclusionStrategies(new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes f) {
return f.getDeclaringClass().equals(RealmObject.class);
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
return false;
}
})
.create();
return new GsonConverter(gson);
}
Run Code Online (Sandbox Code Playgroud)
因此,我们的想法是找到Gson可以使用默认配置初始化的位置.这也是我通过上述配置的原因Retrofit.
new RestAdapter.Builder()
.setConverter(new GsonConverter(gson))
.build();
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
965 次 |
| 最近记录: |