tinker
tinker copied to clipboard
Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstall apk.
UnZipping apk to D:\androidWorkspace\learn\hitfix\app\build\tmp\tinkerPatch\app-release-old UnZipping apk to D:\androidWorkspace\learn\hitfix\app\build\tmp\tinkerPatch\app-release-new found modify resource: AndroidManifest.xml, but it is AndroidManifest.xml, just ignore! Check for loader classes in dex: classes.dex Collect class descriptors in classes.dex...
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.os.Message.recycle()' on a null object reference at com.tencent.tinker.loader.app.TinkerInlineFenceAction.callGetSystemService(SourceFile:4) at com.tencent.tinker.loader.app.TinkerApplication.getSystemService(SourceFile:3)
异常类型:app运行时异常 手机型号:rk3399 手机系统版本:android7.0 tinker版本:1.9.14.18 gradle版本:4.0.1 是否使用热更新SDK: TinkerPatch SDK 系统:window 堆栈/日志: 2023-02-27 14:28:35 v Tinker.SamplePatchListener receive a patch file: /storage/emulated/0/pem/download/patch/patch_signed_7zip.apk, file size:6824124 2023-02-27 14:28:35 w Tinker.PatchInfo read property failed, e:java.io.FileNotFoundException: /data/user/0/com.kth.pem/tinker/patch.info:...
在pr未合入之前,可以暂时通过以下规避 android { ... aaptOptions { additionalParameters '-v' } ... }
## Issue/提问须知 **在提交issue之前,我们应该先查询是否已经有相关的issue以及[常见问题](https://github.com/Tencent/tinker/wiki/Tinker-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)。提交issue时,我们需要写明issue的原因,以及编译或运行过程的日志(加载进程以及Patch进程)。issue需要以下面的格式:** ``` 异常类型:app运行时异常 手机型号:如:荣耀10(如是编译异常,则可以不填) 手机系统版本:如:Android 10 (如是编译异常,则可以不填) tinker版本:如:1.9.14.25.1 gradle版本:如:7.0.2 是否使用热更新SDK: 否 系统:如:window11 堆栈/日志: 1. 如是编译异常,请在执行gradle命令时,加上--stacktrace; 2. 日志我们需要过滤"Tinker."关键字; 3. 对于合成失败的情况,请给出:patch进程的日志,这里需要将Android Moniter右上角设为No Filter。 ``` 2022-12-01 14:42:08.100 3212-3239/? I/Tinker.PatchInfo: rewritePatchInfoFile file...
命令行接入,输出日志部分如下 Check for loader classes in dex: classes2.dex Collect class descriptors in classes2.dex Found modify resource: res/-o.xml Found modify resource: res/-Y.xml Found modify resource: res/1N.xml Found modify resource: res/30.xml Found...
## Issue/提问须知 **在提交issue之前,我们应该先查询是否已经有相关的issue以及[常见问题](https://github.com/Tencent/tinker/wiki/Tinker-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)。提交issue时,我们需要写明issue的原因,以及编译或运行过程的日志(加载进程以及Patch进程)。issue需要以下面的格式:** ``` 异常类型:app运行时异常 手机型号:航盛车机 手机系统版本:Android9.0 tinker版本:如:1.9.14.25 gradle版本:如:4.2.0 是否使用热更新SDK:否 系统:Windows 报错堆栈 E/Tinker.DefaultPatchReporter: onPatchDexOptFail: java.io.FileNotFoundException: Odex file: /data/user/0/com.***.***/tinker/patch-b7dc98f7/dex/oat/arm64/tinker_classN.odex does not exist. at com.tencent.tinker.loader.TinkerDexOptimizer$OptimizeWorker.run(TinkerDexOptimizer.java:192) at com.tencent.tinker.loader.TinkerDexOptimizer.optimizeAll(TinkerDexOptimizer.java:108) at com.tencent.tinker.loader.TinkerDexOptimizer.optimizeAll(TinkerDexOptimizer.java:83) at com.tencent.tinker.lib.patch.DexDiffPatchInternal.dexOptimizeDexFiles(DexDiffPatchInternal.java:380) at...
异常类型:app运行时异常/编译异常 手机型号:如:RedMi 手机系统版本:如:Android 11 (如是编译异常,则可以不填) tinker版本:如:1.9.14.25.1 gradle版本:如:4.10.3 是否使用热更新SDK: TinkerPatch SDK 系统:Mac Log:2022-11-23 15:04:10.368 11299-11299/com.xxxxx.activity D/Tinker.TinkerInternals: same fingerprint:Redmi/chopin/chopin:11/RP1A.200720.011/V12.5.5.0.RKPCNXM:user/release-keys 2022-11-23 15:04:10.368 11299-11299/com.x x x x x.activity W/Tinker.TinkerInternals: getSafeModeCount: recFileName:safemode_count_rec_com.xxxxx.activity failed, return 0...
``` 异常类型:app运行时异常 手机型号:锤子坚果pro 手机系统版本:Android 8.0 tinker版本:如:1.9.14.25.2 gradle版本:如:6.7.1 是否使用热更新SDK: 如 TinkerPatch SDK 或者 Bugly SDK 系统::Mac 堆栈/日志: 21:41:55.770 7480-7506 com.yxl.fish E tinker patch exception com.tencent.tinker.loader.TinkerRuntimeException: Tinker Exception:patch dex extract failed (No...
## Issue/提问须知 **在提交issue之前,我们应该先查询是否已经有相关的issue以及[常见问题](https://github.com/Tencent/tinker/wiki/Tinker-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)。提交issue时,我们需要写明issue的原因,以及编译或运行过程的日志(加载进程以及Patch进程)。issue需要以下面的格式:** 报错异常: AGPBI: {"kind":"error","text":"'android.support.v4.app.INotificationSideChannel asInterface(android.os.IBinder)' already has a mapping","sources":[{}],"tool":"R8"} 'android.support.v4.app.INotificationSideChannel asInterface(android.os.IBinder)' already has a mapping AGPBI: {"kind":"error","text":"'boolean onTransact(int,android.os.Parcel,android.os.Parcel,int)' already has a mapping","sources":[{}],"tool":"R8"} 'boolean onTransact(int,android.os.Parcel,android.os.Parcel,int)' already has a mapping...