tinker icon indicating copy to clipboard operation
tinker copied to clipboard

Android 5.0 5.1 6.0 OPPO VIVO ClassNotFoundException when unmarshalling

Open BinarySatan opened this issue 3 years ago • 0 comments

异常类型:app运行时异常

手机型号:VIVO、OPPO

手机系统版本:Android 5.0、5.1、6.0

tinker版本:1.9.14.19

gradle版本:6.8.3

是否使用热更新SDK: 无

系统:Mac

堆栈/日志:

main(1)

android.os.BadParcelableException

ClassNotFoundException when unmarshalling: ninja.i4

java.lang.RuntimeException:android.os.BadParcelableException: ClassNotFoundException when unmarshalling: ninja.i4 android.app.job.JobService$JobHandler.handleMessage(JobService.java:130) ...... Caused by: android.os.BadParcelableException:ClassNotFoundException when unmarshalling: ninja.i4 android.os.Parcel.readParcelableCreator(Parcel.java:2432) android.os.Parcel.readParcelable(Parcel.java:2358) android.os.Parcel.readValue(Parcel.java:2264) android.os.Parcel.readArrayMapInternal(Parcel.java:2614) android.os.BaseBundle.unparcel(BaseBundle.java:221) android.os.Bundle.putParcelable(Bundle.java:347) android.content.Intent.putExtra(Intent.java:6527) com.tencent.tinker.loader.hotplug.handler.AMSInterceptHandler.storeAndReplaceOriginalComponentName(SourceFile:163) com.tencent.tinker.loader.hotplug.handler.AMSInterceptHandler.processActivityIntent(SourceFile:156) com.tencent.tinker.loader.hotplug.handler.AMSInterceptHandler.handleStartActivity(SourceFile:89) com.tencent.tinker.loader.hotplug.handler.AMSInterceptHandler.invoke(SourceFile:64) com.tencent.tinker.loader.hotplug.interceptor.ServiceBinderInterceptor$FakeInterfaceHandler.invoke(SourceFile:257) java.lang.reflect.Proxy.invoke(Proxy.java:393) com.tencent.tinker.loader.hotplug.interceptor.$Proxy1.startActivity(Unknown Source) android.app.Instrumentation.execStartActivity(Instrumentation.java:1516) android.app.ContextImpl.startActivity(ContextImpl.java:679) android.app.ContextImpl.startActivity(ContextImpl.java:661) android.content.ContextWrapper.startActivity(ContextWrapper.java:331) org.xx.xx.xxService.onStartJob(SourceFile:11) android.app.job.JobService$JobHandler.handleMessage(JobService.java:126) android.os.Handler.dispatchMessage(Handler.java:102) android.os.Looper.loop(Looper.java:148) android.app.ActivityThread.main(ActivityThread.java:5619) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:853) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:737)

该异常发生在下发补丁包后,在JobService里startActivity后,tinker内部 intent.putExtra(EnvConsts.INTENT_EXTRA_OLD_COMPONENT, origComponentName);导致。 通过看源码得知:ShareIntentUtil.fixIntentClassLoader(intent, mContext.getClassLoader()); 这个地方是有做处理。 目前是对5.0 6.0的机型不支持吗?

BinarySatan avatar Jun 02 '22 02:06 BinarySatan