From c9af523a75131c877a8173da65431c0b0f16f97d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Mon, 30 Nov 2020 12:13:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E4=BA=8B=E4=BB=B6=E7=9A=84=E5=A4=84?= =?UTF-8?q?=E7=90=86=E8=BF=9B=E8=A1=8C=E5=BC=82=E5=B8=B8=E5=8C=85=E8=A3=B9?= =?UTF-8?q?=EF=BC=8C=E4=BF=9D=E8=AF=81=E7=A8=8B=E5=BA=8F=E4=B8=8D=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E5=B4=A9=E6=BA=83=20appName=3D=E8=98=91=E8=8F=87?= =?UTF-8?q?=E5=87=BA=E8=A1=8C=20versionCode=3D8001873=20sn=3DZD802B1932L00?= =?UTF-8?q?622=20versionName=3D8.0.7.1173=20DISPLAY=3DK2101=5FZD=5FS112101?= =?UTF-8?q?.20200521.21553235=20appPackageName=3Dcom.mogo.launcher.app=20T?= =?UTF-8?q?IME=3D1606470575675=20fileName=3Ddebug-app-crash-com.mogo.launc?= =?UTF-8?q?her.app-2020-11-27-17-49-35.log=20java.lang.ClassCastException:?= =?UTF-8?q?=20java.lang.String=20cannot=20be=20cast=20to=20java.lang.Objec?= =?UTF-8?q?t[]=20=09at=20android.util.ArrayMap.allocArrays(ArrayMap.java:1?= =?UTF-8?q?85)=20=09at=20android.util.ArrayMap.put(ArrayMap.java:444)=20?= =?UTF-8?q?=09at=20android.os.Bundle.putSerializable(Bundle.java:643)=20?= =?UTF-8?q?=09at=20android.content.Intent.putExtra(Intent.java:5866)=20=09?= =?UTF-8?q?at=20com.mogo.module.v2x.scenario.impl.V2XScenarioManager.lambd?= =?UTF-8?q?a$handlerMessage$0$V2XScenarioManager(V2XScenarioManager.java:6?= =?UTF-8?q?8)=20=09at=20com.mogo.module.v2x.scenario.impl.-$$Lambda$V2XSce?= =?UTF-8?q?narioManager$7EW5DB57RlPpJUn77fU606mlAJk.run(lambda)=20=09at=20?= =?UTF-8?q?com.mogo.module.v2x.utils.V2XUtils.runOnUiThread(V2XUtils.java:?= =?UTF-8?q?164)=20=09at=20com.mogo.module.v2x.scenario.impl.V2XScenarioMan?= =?UTF-8?q?ager.handlerMessage(V2XScenarioManager.java:61)=20=09at=20com.m?= =?UTF-8?q?ogo.module.v2x.listener.V2XMessageListener=5F401005.lambda$hand?= =?UTF-8?q?leSeekHelp$1(V2XMessageListener=5F401005.java:89)=20=09at=20com?= =?UTF-8?q?.mogo.module.v2x.listener.-$$Lambda$V2XMessageListener=5F401005?= =?UTF-8?q?$7Frk0OhryomEqYMaU1gKqg=5Fo7N4.run(lambda)=20=09at=20android.os?= =?UTF-8?q?.Handler.handleCallback(Handler.java:733)=20=09at=20android.os.?= =?UTF-8?q?Handler.dispatchMessage(Handler.java:95)=20=09at=20android.os.L?= =?UTF-8?q?ooper.loop(Looper.java:136)=20=09at=20android.app.ActivityThrea?= =?UTF-8?q?d.main(ActivityThread.java:5057)=20=09at=20java.lang.reflect.Me?= =?UTF-8?q?thod.invokeNative(Native=20Method)=20=09at=20java.lang.reflect.?= =?UTF-8?q?Method.invoke(Method.java:515)=20=09at=20com.android.internal.o?= =?UTF-8?q?s.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)=20=09?= =?UTF-8?q?at=20com.android.internal.os.ZygoteInit.main(ZygoteInit.java:67?= =?UTF-8?q?6)=20=09at=20dalvik.system.NativeStart.main(Native=20Method)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../listener/V2XMessageListener_401005.java | 18 +-- .../v2x/scenario/impl/V2XScenarioManager.java | 114 +++++++++--------- 2 files changed, 63 insertions(+), 69 deletions(-) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_401005.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_401005.java index 0a790863af..aaf099bf30 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_401005.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_401005.java @@ -1,11 +1,11 @@ package com.mogo.module.v2x.listener; -import com.mogo.module.v2x.V2XConst; -import com.mogo.module.v2x.V2XServiceManager; -import com.mogo.module.v2x.entity.net.V2XSpecialCarRes.V2XMarkerEntity; -import com.mogo.module.v2x.entity.net.V2XSpecialCarRes; import com.mogo.module.common.entity.V2XMessageEntity; import com.mogo.module.common.entity.V2XPoiTypeEnum; +import com.mogo.module.v2x.V2XConst; +import com.mogo.module.v2x.V2XServiceManager; +import com.mogo.module.v2x.entity.net.V2XSpecialCarRes; +import com.mogo.module.v2x.entity.net.V2XSpecialCarRes.V2XMarkerEntity; import com.mogo.module.v2x.scenario.impl.V2XScenarioManager; import com.mogo.module.v2x.utils.MarkerUtils; import com.mogo.module.v2x.utils.V2XUtils; @@ -64,24 +64,14 @@ public class V2XMessageListener_401005 implements IMogoOnMessageListener coordinates = message.getCoordinates(); List entityList = new ArrayList<>(); - // 移除上一次的数据 - //Context context = V2XServiceManager.getContext(); for (V2XMarkerEntity coordinate : coordinates) { //故障车机 if (coordinate.getTargetId() == V2XPoiTypeEnum.ALERT_CAR_TROUBLE_WARNING) { - //V2XMarkerEntity.UserInfoBean userInfoBean = coordinate.getUserInfo(); - //if (userInfoBean != null) { entityList.add(coordinate); - //} - //绘制 - //V2XServiceManager - // .getMoGoV2XMarkerManager() - // .drawableSpecialCarPOI(context, coordinate, V2XMarkerClickListener.getInstance()); } } if (!entityList.isEmpty()) { - //V2XUtils.runOnUiThread(() -> V2XServiceManager.getMoGoV2XScenarioManager().showOtherSeekHelpWindow(entityList)); V2XUtils.runOnUiThread(() -> { V2XMessageEntity> v2XMessageEntity = new V2XMessageEntity<>(); v2XMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_SEEK_WARNING); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/impl/V2XScenarioManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/impl/V2XScenarioManager.java index a81d3afe76..5c9bfbafe2 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/impl/V2XScenarioManager.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/impl/V2XScenarioManager.java @@ -56,66 +56,70 @@ public class V2XScenarioManager implements IV2XScenarioManager { @Override public void handlerMessage(V2XMessageEntity v2XMessageEntity) { //Logger.d(MODULE_NAME, "处理V2X场景:" + GsonUtil.jsonFromObject(v2XMessageEntity)); - synchronized (V2XScenarioManager.class) { - // 展示 - V2XUtils.runOnUiThread(() -> { - // 提取之前存储的场景 - if (v2XMessageEntity != null) { + try { + synchronized (V2XScenarioManager.class) { + // 展示 + V2XUtils.runOnUiThread(() -> { + // 提取之前存储的场景 + if (v2XMessageEntity != null) { - // 广播给应用内部其它模块 - Intent intent = new Intent(V2XConst.BROADCAST_SCENE_ACTION); - intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); - LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent); + // 广播给应用内部其它模块 + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent); - mV2XScenario = mV2XScenarioSet.get(v2XMessageEntity.getType()); - // 如果没有拿到之前的,根据类型分发 - if (mV2XScenario == null) { - switch (v2XMessageEntity.getType()) { - case V2XMessageEntity.V2XTypeEnum.ALERT_ROAD_WARNING: - mV2XScenario = V2XRoadEventScenario.getInstance(); - break; - case V2XMessageEntity.V2XTypeEnum.ALERT_SEEK_WARNING: - mV2XScenario = V2XSeekHelpScenario.getInstance(); - break; - case V2XMessageEntity.V2XTypeEnum.ALERT_FATIGUE_DRIVING: - mV2XScenario = V2XFatigueDrivingScenario.getInstance(); - break; - case V2XMessageEntity.V2XTypeEnum.ALERT_PUSH_WINDOW_WARNING: - mV2XScenario = V2XPushEventScenario.getInstance(); - break; - case V2XMessageEntity.V2XTypeEnum.ALERT_PUSH_LIVE_CAR_WARNING: - mV2XScenario = V2XPushLiveCarScenario.getInstance(); - break; - case V2XMessageEntity.V2XTypeEnum.ALERT_ANIMATION_WARNING: - mV2XScenario = V2XAnimationScenario.getInstance(); - break; - case V2XMessageEntity.V2XTypeEnum.ALERT_CAR_FOR_HELP: - mV2XScenario = V2XCarForHelpScenario.getInstance(); - break; - case V2XMessageEntity.V2XTypeEnum.ALERT_ILLEGAL_PARK_WARNING: - mV2XScenario = V2XIllegalParkScenario.getInstance(); - break; - case V2XMessageEntity.V2XTypeEnum.ALERT_EVENT_UGC_WARNING: - mV2XScenario = V2XEventUgcScenario.getInstance(); - break; - default: - Logger.e(MODULE_NAME, "当前V2X消息类型未定义。"); - TipToast.tip("当前V2X消息类型未定义"); - return; + mV2XScenario = mV2XScenarioSet.get(v2XMessageEntity.getType()); + // 如果没有拿到之前的,根据类型分发 + if (mV2XScenario == null) { + switch (v2XMessageEntity.getType()) { + case V2XMessageEntity.V2XTypeEnum.ALERT_ROAD_WARNING: + mV2XScenario = V2XRoadEventScenario.getInstance(); + break; + case V2XMessageEntity.V2XTypeEnum.ALERT_SEEK_WARNING: + mV2XScenario = V2XSeekHelpScenario.getInstance(); + break; + case V2XMessageEntity.V2XTypeEnum.ALERT_FATIGUE_DRIVING: + mV2XScenario = V2XFatigueDrivingScenario.getInstance(); + break; + case V2XMessageEntity.V2XTypeEnum.ALERT_PUSH_WINDOW_WARNING: + mV2XScenario = V2XPushEventScenario.getInstance(); + break; + case V2XMessageEntity.V2XTypeEnum.ALERT_PUSH_LIVE_CAR_WARNING: + mV2XScenario = V2XPushLiveCarScenario.getInstance(); + break; + case V2XMessageEntity.V2XTypeEnum.ALERT_ANIMATION_WARNING: + mV2XScenario = V2XAnimationScenario.getInstance(); + break; + case V2XMessageEntity.V2XTypeEnum.ALERT_CAR_FOR_HELP: + mV2XScenario = V2XCarForHelpScenario.getInstance(); + break; + case V2XMessageEntity.V2XTypeEnum.ALERT_ILLEGAL_PARK_WARNING: + mV2XScenario = V2XIllegalParkScenario.getInstance(); + break; + case V2XMessageEntity.V2XTypeEnum.ALERT_EVENT_UGC_WARNING: + mV2XScenario = V2XEventUgcScenario.getInstance(); + break; + default: + Logger.e(MODULE_NAME, "当前V2X消息类型未定义。"); + TipToast.tip("当前V2X消息类型未定义"); + return; + } + } + + // 展示最新的消息 + if (mV2XScenario != null) { + if (v2XMessageEntity.getType() != V2XMessageEntity.V2XTypeEnum.ALERT_CAR_FOR_HELP) { + hidOtherPanel(); + } + mV2XScenario.init(v2XMessageEntity); + mV2XScenarioSet.put(v2XMessageEntity.getType(), mV2XScenario); } } - - // 展示最新的消息 - if (mV2XScenario != null) { - if (v2XMessageEntity.getType() != V2XMessageEntity.V2XTypeEnum.ALERT_CAR_FOR_HELP) { - hidOtherPanel(); - } - mV2XScenario.init(v2XMessageEntity); - mV2XScenarioSet.put(v2XMessageEntity.getType(), mV2XScenario); - } - } - }); + }); + } + } catch (Exception e) { + e.printStackTrace(); } }