Tencent / tinker

Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstall apk.
Other
17.13k stars 3.33k forks source link

使用360或者乐固对基准包进行加固后,补丁包补丁成功,重启后app闪退 #1482

Open 1418836979 opened 3 years ago

1418836979 commented 3 years ago

异常类型:app运行时异常

手机型号: Honor 10(android 8.1.0)、Honor 8X(android 10.0.0)

手机系统版本:android 8.1.0、android 10

tinker版本:测试了这几个版本:1.9.11、1.9.13、1.9.14、1.9.14.8、1.9.14.9 ,均出现该问题

gradle版本:4.6

是否使用热更新SDK: Bugly SDK

系统:windows

堆栈/日志: Process: cn.lianta.xiangshua, PID: 17471 java.lang.IllegalAccessError: Illegal class access: 'cn.lianta.rednews.NavActivity' attempting to access 'cn.lianta.rednews.NavActivity$1' (declaration of 'cn.lianta.rednews.NavActivity' appears in /data/data/cn.lianta.xiangshua/tinker/patch-2bf7f4db/dex/changed_classes1.dex.jar) at cn.lianta.rednews.NavActivity.(NavActivity.java:234) at java.lang.Class.newInstance(Native Method) at android.app.Instrumentation.newActivity(Instrumentation.java:1179) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3060) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3284) at android.app.ActivityThread.-wrap12(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1894) at android.os.Handler.dispatchMessage(Handler.java:109) at android.os.Looper.loop(Looper.java:166) at android.app.ActivityThread.main(ActivityThread.java:7383) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:469) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:963)

复现步骤: 1.基于isProtectedApp = true打好基准包 2.用该基准包进行360或者乐固加固后,正常运行加固包 3.对未加固的基准包进行打补丁包,补丁包也是基于isProtectedApp = true打的 4.发布补丁包,加固包运行并合并成功后,重启加固包,发生闪退

测试了几个tinker版本都是报相同的错误,与tinker的issues上的1212、1207、1155提的问题基本一致,应该属于相同的问题,但是在issues上没有找到解决方法 ,将tinker版本退回到1.9.9 ,加固后可以正常补丁,但是1.9.9好像对于android10是没有做适配吧,求教

Sum-sdl commented 1 year ago

相同步骤,Tinker version: 1.9.14.3,8.1.0系统版本没有闪退