【发布时间】:2015-12-03 09:00:09
【问题描述】:
我知道以前有人问过这个问题。由于我在java和android方面的新手技能。我无法解决这个问题超过一个星期。
我和我的一个朋友正在开发一个 android 项目,是否有一些这样的事情。
这件事最奇怪的部分是,它只发生在我从 Google Play 商店下载并测试它时。不是来自本地 android studio 安装或调试模式。
这可能是什么问题,或者这个返回列表是完全错误的? 我的朋友说服该代码正确返回,但从 Play 商店安装它始终是一个错误。
请建议我应该在哪里继续挖掘?
@Override
public void promiseMethod(JSONObject object) {
if (object != null) {
if (object.has(DO_SERVICES)) {
vehicleDetails = new ArrayList < Object[] > (1);
List < String > vehicleNoList = new ArrayList < String > (1);
List < String > serviceList = new ArrayList < String > (1);
try {
Gson gson = new Gson();
JSONObject jsonObj = new JSONObject(object.get(DO_SERVICES)
.toString());
servDto = gson.fromJson(jsonObj.toString(),
ServiceDto.class);
if (servDto.getServiceDto() instanceof List) {
List < DoServiceDto > doServiceList = servDto.getServiceDto();
例外是
java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMap 无法转换为 com.gaurage.dto.DoServiceDto 在 com.gaurage.user.User_Test_Main.promiseMethod(未知来源)
【问题讨论】:
-
一个多星期以来的奇怪问题......它适用于本地安装而不是来自 Play 商店安装
-
@CodeSpy 顺便说一句,感谢您提供了很好的答案和方法,但建议使用
TypeToken而不是手动按名称获取LinkedMapTree对象