Closed chrisLeeCreate closed 4 years ago
**在提交issue之前,我们应该先查询是否已经有相关的issue以及[常见问题] https://github.com/Tencent/tinker/issues/1084 像这个问题所说。当minSdkVersion>21 得时候multiDexKeepProguard 分包规则失效。 gradle>3.2.1 的时候 additionalParameters规则失效。
升级tinker版本到1.9.14.5 提供了两个配置 allowLoaderInAnyDex = true removeLoaderForAllDex = true
可以允许tinker 的loader类 不必须在main-dex中。 可是现在有一些问题。打release包的时候,由于分包规则随机。 某些类可能被分在类main-dex中。 导致优先于loader类先加载。到时候部分补丁合成成功,但是没有生效。
ps:比如修改了三处,有两处没生效。怀疑是在loader加载前,先加载了。这个怎么解决呢
异常类型:app运行时异常/编译异常 无 手机型号:华为p30 手机系统版本:如:Android 10 android 10 tinker版本:如:1.9.14.5 gradle版本:如:3.5.3 是否使用热更新SDK: 如 TinkerPatch SDK 或者 Bugly SDK 无 系统:Mac 堆栈/日志: 2020-05-15 16:50:39.682 8610-8610/? D/Tinker.TinkerLoader: tryLoad test test 2020-05-15 16:50:39.694 8610-8610/? D/Tinker.TinkerInternals: getCurrentInstructionSet:arm 2020-05-15 16:50:39.694 8610-8610/? W/Tinker.TinkerLoader: tryLoadPatchFiles:isEnabledForResource:true 2020-05-15 16:50:39.695 8610-8610/? D/Tinker.TinkerInternals: same fingerprint:HUAWEI/ELE-AL00/HWELE:10/HUAWEIELE-AL00/10.0.0.195C00:user/release-keys 2020-05-15 16:50:39.695 8610-8610/? W/Tinker.TinkerInternals: getSafeModeCount: preferName:tinker_own_config_com.xes.jazhanghui.activity count:0 2020-05-15 16:50:39.698 8610-8610/? W/Tinker.TinkerInternals: setSafeModeCount: preferName:tinker_own_config_com.xes.jazhanghui.activity count:1 2020-05-15 16:50:39.698 8610-8610/? I/Tinker.TinkerDexLoader: classloader: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/ base.apk"],nativeLibraryDirectories=[/data/app/com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/lib/arm, /data/app/com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/base.apk!/lib/armeabi-v7a, /system/lib, / hw_product/lib]]] 2020-05-15 16:50:39.698 8610-8610/? I/Tinker.TinkerDexLoader: verify dex file:/data/user/0/com.xes.jazhanghui.activity/tinker/patch-ea8a04bd/dex/tinker_classN.apk md5, use time: 0 2020-05-15 16:50:39.698 8610-8610/? I/Tinker.ClassLoaderAdder: installDexes dexOptDir: /data/user/0/com.xes.jazhanghui.activity/tinker/patch-ea8a04bd/odex, dex size:1 2020-05-15 16:50:39.700 8610-8610/? I/Tinker.ClassLoaderAdder: after loaded classloader: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/user/0/com.xes.jazhanghui.activity/tinker/patch-ea8a04bd/dex/ tinker_classN.apk", zip file "/data/app/com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/base.apk"],nativeLibraryDirectories=[/data/app/com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/lib/arm, /data/app/ com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/base.apk!/lib/armeabi-v7a, /system/lib, /hw_product/lib]]], dex size:1 2020-05-15 16:50:39.700 8610-8610/? W/Tinker.ClassLoaderAdder: checkDexInstall result:true 2020-05-15 16:50:39.700 8610-8610/? I/Tinker.IncrementCompMgr: package has no incremental component meta, skip init. 2020-05-15 16:50:39.700 8610-8610/? I/Tinker.PatchInfo: rewritePatchInfoFile file path:/data/user/0/com.xes.jazhanghui.activity/tinker/patch.info , oldVer:ea8a04bd6a247819f81449238cb6ad38, newVer:ea8a04bd6a247819f81449238cb6ad38, isProtectedApp:1, isRemoveNewVersion:0, fingerprint:HUAWEI/ELE-AL00/HWELE:10/HUAWEIELE-AL00/10.0.0.195C00:user/release-keys, oatDir:odex 2020-05-15 16:50:39.702 8610-8610/? I/Tinker.TinkerLoader: tryLoadPatchFiles: load end, ok! 2020-05-15 16:50:39.706 8610-8610/? D/Tinker.DefaultAppLike: onBaseContextAttached: 2020-05-15 16:50:39.707 8610-8610/? I/Tinker.SamplePatchListener: application maxMemory:384 2020-05-15 16:50:39.707 8610-8610/? W/Tinker.Tinker: tinker patch directory: /data/user/0/com.xes.jazhanghui.activity/tinker 2020-05-15 16:50:39.707 8610-8610/? I/Tinker.Tinker: try to install tinker, isEnable: true, version: 1.9.14.5 2020-05-15 16:50:39.708 8610-8610/? I/Tinker.TinkerLoadResult: parseTinkerResult loadCode:0, process name:com.xes.jazhanghui.activity, main process:true, systemOTA:false, fingerPrint:HUAWEI/ELE-AL00/HWELE:10/ HUAWEIELE-AL00/10.0.0.195C00:user/release-keys, oatDir:odex, useInterpretMode:false 2020-05-15 16:50:39.708 8610-8610/? I/Tinker.TinkerLoadResult: parseTinkerResult oldVersion:, newVersion:ea8a04bd6a247819f81449238cb6ad38, current:ea8a04bd6a247819f81449238cb6ad38 2020-05-15 16:50:39.708 8610-8610/? I/Tinker.TinkerLoadResult: oh yeah, tinker load all success 2020-05-15 16:50:39.708 8610-8610/? I/Tinker.DefaultLoadReporter: patch loadReporter onLoadPatchVersionChanged: patch version change from to ea8a04bd6a247819f81449238cb6ad38 2020-05-15 16:50:39.708 8610-8610/? I/Tinker.UpgradePatchRetry: onPatchResetMaxCheck, reset max check to 1 2020-05-15 16:50:39.708 8610-8610/? I/Tinker.DefaultLoadReporter: patch loadReporter onLoadResult: patch load result, path:/data/user/0/com.xes.jazhanghui.activity/tinker, code: 0, cost: 20ms 2020-05-15 16:50:39.711 8610-8610/? W/Tinker.TinkerInternals: setSafeModeCount: preferName:tinker_own_config_com.xes.jazhanghui.activity count:0 2020-05-15 16:50:39.717 8610-8610/? D/Tinker.DefaultAppLike: onCreate 2020-05-15 16:50:39.792 8610-8610/? E/tinker: SampleTinkerReport:6 2020-05-15 16:50:39.793 8610-8610/? E/tinker: patchLoadSucc : true6 2020-05-15 16:50:39.793 8610-8610/? E/tinker: SampleTinkerReport:400 2020-05-15 16:50:39.801 8667-8667/? D/Tinker.TinkerLoader: tryLoad test test 2020-05-15 16:50:39.816 8667-8667/? D/Tinker.TinkerInternals: getCurrentInstructionSet:arm 2020-05-15 16:50:39.816 8667-8667/? W/Tinker.TinkerLoader: tryLoadPatchFiles:isEnabledForResource:true 2020-05-15 16:50:39.816 8667-8667/? D/Tinker.TinkerInternals: same fingerprint:HUAWEI/ELE-AL00/HWELE:10/HUAWEIELE-AL00/10.0.0.195C00:user/release-keys 2020-05-15 16:50:39.817 8667-8667/? W/Tinker.TinkerInternals: getSafeModeCount: preferName:tinker_own_config_com.xes.jazhanghui.activity:core count:0 2020-05-15 16:50:39.822 8667-8667/? W/Tinker.TinkerInternals: setSafeModeCount: preferName:tinker_own_config_com.xes.jazhanghui.activity:core count:1 2020-05-15 16:50:39.822 8667-8667/? I/Tinker.TinkerDexLoader: classloader: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/ base.apk"],nativeLibraryDirectories=[/data/app/com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/lib/arm, /data/app/com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/base.apk!/lib/armeabi-v7a, /system/lib, / hw_product/lib]]] 2020-05-15 16:50:39.822 8667-8667/? I/Tinker.TinkerDexLoader: verify dex file:/data/user/0/com.xes.jazhanghui.activity/tinker/patch-ea8a04bd/dex/tinker_classN.apk md5, use time: 0 2020-05-15 16:50:39.822 8667-8667/? I/Tinker.ClassLoaderAdder: installDexes dexOptDir: /data/user/0/com.xes.jazhanghui.activity/tinker/patch-ea8a04bd/odex, dex size:1 2020-05-15 16:50:39.824 8667-8667/? I/Tinker.ClassLoaderAdder: after loaded classloader: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/user/0/com.xes.jazhanghui.activity/tinker/patch-ea8a04bd/dex/ tinker_classN.apk", zip file "/data/app/com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/base.apk"],nativeLibraryDirectories=[/data/app/com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/lib/arm, /data/app/ com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/base.apk!/lib/armeabi-v7a, /system/lib, /hw_product/lib]]], dex size:1 2020-05-15 16:50:39.825 8667-8667/? W/Tinker.ClassLoaderAdder: checkDexInstall result:true 2020-05-15 16:50:39.825 8667-8667/? I/Tinker.IncrementCompMgr: package has no incremental component meta, skip init. 2020-05-15 16:50:39.825 8667-8667/? I/Tinker.TinkerLoader: tryLoadPatchFiles: load end, ok! 2020-05-15 16:50:39.831 8667-8667/? D/Tinker.DefaultAppLike: onBaseContextAttached: 2020-05-15 16:50:39.832 8667-8667/? I/Tinker.SamplePatchListener: application maxMemory:384 2020-05-15 16:50:39.833 8667-8667/? W/Tinker.Tinker: tinker patch directory: /data/user/0/com.xes.jazhanghui.activity/tinker 2020-05-15 16:50:39.833 8667-8667/? I/Tinker.Tinker: try to install tinker, isEnable: true, version: 1.9.14.5 2020-05-15 16:50:39.833 8667-8667/? I/Tinker.TinkerLoadResult: parseTinkerResult loadCode:0, process name:com.xes.jazhanghui.activity:core, main process:false, systemOTA:false, fingerPrint:HUAWEI/ELE-AL00/ HWELE:10/HUAWEIELE-AL00/10.0.0.195C00:user/release-keys, oatDir:odex, useInterpretMode:false 2020-05-15 16:50:39.833 8667-8667/? I/Tinker.TinkerLoadResult: parseTinkerResult oldVersion:ea8a04bd6a247819f81449238cb6ad38, newVersion:ea8a04bd6a247819f81449238cb6ad38, current:ea8a04bd6a247819f81449238cb6ad38 2020-05-15 16:50:39.833 8667-8667/? I/Tinker.TinkerLoadResult: oh yeah, tinker load all success 2020-05-15 16:50:39.833 8667-8667/? I/Tinker.DefaultLoadReporter: patch loadReporter onLoadResult: patch load result, path:/data/user/0/com.xes.jazhanghui.activity/tinker, code: 0, cost: 23ms 2020-05-15 16:50:39.834 8667-8667/? W/Tinker.TinkerInternals: setSafeModeCount: preferName:tinker_own_config_com.xes.jazhanghui.activity:core count:0 2020-05-15 16:50:39.836 8667-8667/? D/Tinker.DefaultAppLike: onCreate 2020-05-15 16:50:39.882 8667-8667/? W/Tinker.UpgradePatchRetry: onPatchRetryLoad retry is not main process, just return 2020-05-15 16:50:39.921 8610-8610/? D/TTTTInit: StartActvity TinkerDownPatchUtils:1 2020-05-15 16:50:39.996 8610-8746/? D/dexloader: Set base classLoader for DexClassLoader: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/user/0/com.xes.jazhanghui.activity/tinker/patch-ea8a04bd/dex/ tinker_classN.apk", zip file "/data/app/com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/base.apk"],nativeLibraryDirectories=[/data/app/com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/lib/arm, /data/app/ com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/base.apk!/lib/armeabi-v7a, /system/lib, /hw_product/lib]]] 2020-05-15 16:50:40.043 8610-8610/? W/Tinker.UpgradePatchRetry: onPatchRetryLoad patch file: /data/user/0/com.xes.jazhanghui.activity/tinker_temp/temp.apk is not exist, just return 2020-05-15 16:50:40.076 8610-8804/? D/dexloader: Set base classLoader for DexClassLoader: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/user/0/com.xes.jazhanghui.activity/tinker/patch-ea8a04bd/dex/ tinker_classN.apk", zip file "/data/app/com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/base.apk"],nativeLibraryDirectories=[/data/app/com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/lib/arm, /data/app/ com.xes.jazhanghui.activity-OU-TUiJXm3TsvGq0SMC2Iw==/base.apk!/lib/armeabi-v7a, /system/lib, /hw_product/lib]]] a
提问题时若使用不能用/没效果/有问题/报错此类模糊表达,但又没给出任何代码截图报错的,将绝对不会有任何反馈。这种issue也是一律直接关闭的,大家可以参阅提问的智慧。
不能用/没效果/有问题/报错
Tinker是一个开源项目,希望大家遇到问题时要学会先思考,看看sample与Tinker的源码,更鼓励大家给我们提pr.
我开加固的问题
请问下其他配置
兄弟问你下 你是通过gradle 的接入方式还是 cli 的接入方式?我用cli的接入方式也还是报错
Issue/提问须知
**在提交issue之前,我们应该先查询是否已经有相关的issue以及[常见问题] https://github.com/Tencent/tinker/issues/1084 像这个问题所说。当minSdkVersion>21 得时候multiDexKeepProguard 分包规则失效。 gradle>3.2.1 的时候 additionalParameters规则失效。
升级tinker版本到1.9.14.5 提供了两个配置 allowLoaderInAnyDex = true removeLoaderForAllDex = true
可以允许tinker 的loader类 不必须在main-dex中。 可是现在有一些问题。打release包的时候,由于分包规则随机。 某些类可能被分在类main-dex中。 导致优先于loader类先加载。到时候部分补丁合成成功,但是没有生效。
ps:比如修改了三处,有两处没生效。怀疑是在loader加载前,先加载了。这个怎么解决呢
提问题时若使用
不能用/没效果/有问题/报错
此类模糊表达,但又没给出任何代码截图报错的,将绝对不会有任何反馈。这种issue也是一律直接关闭的,大家可以参阅提问的智慧。Tinker是一个开源项目,希望大家遇到问题时要学会先思考,看看sample与Tinker的源码,更鼓励大家给我们提pr.