Tencent / tinker

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

ENABLE_DEX_ARCHIVE设置为true,对使用tinekr有影响吗? #1305

Open aceding opened 4 years ago

aceding commented 4 years ago
异常类型:编译问题

手机型号:无关紧要

手机系统版本:无关紧要

tinker版本:1.9.14

gradle版本:3.2.0和3.5.2

是否使用热更新SDK: 是

系统:windows

堆栈/日志:
1. ENABLE_DEX_ARCHIVE属性可以减少dex的大小,但tinker把这个属性的默认值改为了false,请问,如果把这个属性改为true,会对使用tinker造成影响吗?
2. 另外,AGP 升级到 3.5.2版本后,ENABLE_DEX_ARCHIVE属性已经被废弃了,默认使用D8MainDexListTransform,请问这会对tinker造成影响吗?
tys282000 commented 4 years ago

minSDKVersion < 21 的情况下在 dalvik 机器上会有影响,因为 dex archive 会破坏multidex的maindex规则,导致 loader 类分散到其他 dex 里引起 patch 加载失败。如果 minSDKVersion >= 21 就没问题了,不过要开启 tinkerPatch {} 中的 allowLoaderInAnyDexremoveLoaderForAllDex设置。