我正在使用Retrofit库与服务器端进行通信。我从服务器得到对象列表
List<BaseAction>我将子操作存储为:ActionUrl, ActionBell, etc.和我在回调sucсess方法中崩溃
Fatal signal 11 (SIGSEGV), code 1, fault addr 0x610091 in tid 21471和我的问题是:出了什么问题,为什么改造崩溃本机?
发布于 2015-01-23 13:25:50
我花了几个小时进行调试,并在列表中发现了这个问题。Retrofit不能正确地反序列化我的JSON并将其转换为java对象。
在Volley中,我使用了自己的类ActionDeserialize<T> implements JsonDeserializer<T>,其中我根据类实现了类解析:
private Type getTypeForType(BTypes bType) {
return bType.getResponseClass();
}有关此这里的更多详细信息
因此,我解决了设置新GsonConverter的问题(在博客阅读之后):
Gson gson = new GsonBuilder()
.registerTypeAdapter(BaseActionPOJO.class, new ActionDeserialize<BaseActionPOJO>())
.create();
RestAdapter restAdapter = new RestAdapter.Builder()
.setLogLevel(loglevel)
.setConverter(new GsonConverter(gson))
.setRequestInterceptor(requestInterceptor)
.setEndpoint(Urls.BASE_URL)
.setClient(new OkClient())
.build();它解决了本地部分的本机崩溃问题。我希望它能节省你的时间。
发布于 2020-01-14 09:49:25
在android部分中将这两行添加到build.gradle中:
android{
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
}发布于 2018-07-10 19:00:35
我进行了二次检查,并且有一个与库输出不匹配的序列化名称。问题解决了!
https://stackoverflow.com/questions/28110943
复制相似问题