New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

三星 galaxy note2 Android4.1.2 报错uncaughtException:Class ref in pre-verified class resolved to unexpected implementation #124

Closed
w4lle opened this Issue Oct 14, 2016 · 6 comments

Comments

Projects
None yet
2 participants
@w4lle

w4lle commented Oct 14, 2016

运行log:

10-14 17:52:17.479 1332-1332/com.boohee.one D/Tinker.DefaultAppLike: onTrimMemory level:20
10-14 17:53:28.249 4107-4107/com.boohee.one W/Tinker.TinkerLoader: tryLoadPatchFiles:patch dir not exist:/data/data/com.boohee.one/tinker
10-14 17:53:28.254 4107-4107/com.boohee.one D/Tinker.DefaultAppLike: onBaseContextAttached:
10-14 17:53:31.089 4107-4107/com.boohee.one I/Tinker.SamplePatchListener: application maxMemory:64
10-14 17:53:31.099 4107-4107/com.boohee.one W/Tinker.Tinker: tinker patch directory: /data/data/com.boohee.one/tinker
10-14 17:53:31.099 4107-4107/com.boohee.one I/Tinker.TinkerLoadResult: parseTinkerResult loadCode:-2
10-14 17:53:31.099 4107-4107/com.boohee.one W/Tinker.TinkerLoadResult: can't find patch file, is ok, just return
10-14 17:53:31.099 4107-4107/com.boohee.one I/Tinker.DefaultLoadReporter: patch load result, path:/data/data/com.boohee.one/tinker, code:-2, cost:2
10-14 17:53:31.099 4107-4107/com.boohee.one W/Tinker.Tinker: tinker load fail!
10-14 17:53:31.099 4107-4107/com.boohee.one D/Tinker.DefaultAppLike: onCreate
10-14 17:53:31.949 4107-4107/com.boohee.one W/Tinker.UpgradePatchRetry: onPatchRetryLoad retry info not exist, just return
10-14 17:53:32.159 4402-4402/com.boohee.one:pushservice W/Tinker.TinkerLoader: tryLoadPatchFiles:patch dir not exist:/data/data/com.boohee.one/tinker
10-14 17:53:32.159 4402-4402/com.boohee.one:pushservice D/Tinker.DefaultAppLike: onBaseContextAttached:
10-14 17:53:32.174 4402-4402/com.boohee.one:pushservice I/Tinker.SamplePatchListener: application maxMemory:64
10-14 17:53:32.179 4402-4402/com.boohee.one:pushservice W/Tinker.Tinker: tinker patch directory: /data/data/com.boohee.one/tinker
10-14 17:53:32.179 4402-4402/com.boohee.one:pushservice I/Tinker.TinkerLoadResult: parseTinkerResult loadCode:-2
10-14 17:53:32.179 4402-4402/com.boohee.one:pushservice W/Tinker.TinkerLoadResult: can't find patch file, is ok, just return
10-14 17:53:32.179 4402-4402/com.boohee.one:pushservice I/Tinker.DefaultLoadReporter: patch load result, path:/data/data/com.boohee.one/tinker, code:-2, cost:1
10-14 17:53:32.179 4402-4402/com.boohee.one:pushservice W/Tinker.Tinker: tinker load fail!
10-14 17:53:32.179 4402-4402/com.boohee.one:pushservice D/Tinker.DefaultAppLike: onCreate
10-14 17:53:32.259 4402-4402/com.boohee.one:pushservice W/Tinker.UpgradePatchRetry: onPatchRetryLoad retry is not main process, just return
10-14 17:53:33.684 4107-4107/com.boohee.one I/Tinker.SamplePatchListener: receive a patch file: /storage/sdcard0/Android/data/com.boohee.one/files/tinkerPatch/5.6.3_0.1.patch, isUpgrade:true, file size:19414
10-14 17:53:33.694 4107-4107/com.boohee.one I/Tinker.SamplePatchListener: get platform:all
10-14 17:53:33.979 4471-4471/com.boohee.one:patch W/Tinker.TinkerLoader: tryLoadPatchFiles:patch dir not exist:/data/data/com.boohee.one/tinker
10-14 17:53:33.979 4471-4471/com.boohee.one:patch D/Tinker.DefaultAppLike: onBaseContextAttached:
10-14 17:53:34.004 4471-4471/com.boohee.one:patch I/Tinker.SamplePatchListener: application maxMemory:64
10-14 17:53:34.009 4471-4471/com.boohee.one:patch W/Tinker.Tinker: tinker patch directory: /data/data/com.boohee.one/tinker
10-14 17:53:34.009 4471-4471/com.boohee.one:patch I/Tinker.TinkerLoadResult: parseTinkerResult loadCode:-2
10-14 17:53:34.009 4471-4471/com.boohee.one:patch W/Tinker.TinkerLoadResult: can't find patch file, is ok, just return
10-14 17:53:34.009 4471-4471/com.boohee.one:patch I/Tinker.DefaultLoadReporter: patch load result, path:/data/data/com.boohee.one/tinker, code:-2, cost:2
10-14 17:53:34.009 4471-4471/com.boohee.one:patch W/Tinker.Tinker: tinker load fail!
10-14 17:53:34.009 4471-4471/com.boohee.one:patch D/Tinker.DefaultAppLike: onCreate
10-14 17:53:34.014 4471-4486/com.boohee.one:patch I/Tinker.DefaultPatchReporter: patchReporter: patch service start
10-14 17:53:34.029 4471-4471/com.boohee.one:patch W/Tinker.UpgradePatchRetry: onPatchRetryLoad retry is not main process, just return
10-14 17:53:34.169 4471-4486/com.boohee.one:patch W/Tinker.UpgradePatchRetry: try copy file: /storage/sdcard0/Android/data/com.boohee.one/files/tinkerPatch/5.6.3_0.1.patch to /data/data/com.boohee.one/tinker/temp.apk
10-14 17:53:34.494 4471-4486/com.boohee.one:patch I/Tinker.TinkerPatchService: try to increase patch process priority
10-14 17:53:34.564 4471-4486/com.boohee.one:patch I/Tinker.UpgradePatch: UpgradePatch tryPatch:dexDiffMd5:8ecc2ea158fb6d42d4944d012ad069d2
10-14 17:53:34.564 4471-4486/com.boohee.one:patch I/Tinker.UpgradePatch: UpgradePatch tryPatch:patchVersionDirectory:/data/data/com.boohee.one/tinker/patch-8ecc2ea1
10-14 17:53:34.564 4471-4486/com.boohee.one:patch W/Tinker.UpgradePatch: UpgradePatch after /storage/sdcard0/Android/data/com.boohee.one/files/tinkerPatch/5.6.3_0.1.patch size:19414, /data/data/com.boohee.one/tinker/patch-8ecc2ea1/patch-8ecc2ea1.apk size:19414
10-14 17:53:57.629 4471-4486/com.boohee.one:patch W/Tinker.DexDiffPatchInternal: success recover dex file: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/classes.dex.jar, use time: 22961
10-14 17:53:57.629 4471-4486/com.boohee.one:patch I/Tinker.DexDiffPatchInternal: try Extracting /data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/test.dex.jar
10-14 17:53:57.634 4471-4486/com.boohee.one:patch I/Tinker.DexDiffPatchInternal: isExtractionSuccessful: true
10-14 17:54:01.544 4471-4486/com.boohee.one:patch I/Tinker.DexDiffPatchInternal: success dex optimize file, path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/classes.dex.jar, use time: 3910
10-14 17:54:01.644 4471-4486/com.boohee.one:patch I/Tinker.DexDiffPatchInternal: success dex optimize file, path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/test.dex.jar, use time: 102
10-14 17:54:01.649 4471-4486/com.boohee.one:patch I/Tinker.DexDiffPatchInternal: recover dex result:true, cost:27073, isUpgradePatch:true
10-14 17:54:01.654 4471-4486/com.boohee.one:patch W/Tinker.BsDiffPatchInternal: patch recover, library is not contained
10-14 17:54:01.664 4471-4486/com.boohee.one:patch I/Tinker.ResDiffPatchInternal: res dir: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/, meta: resArscMd5:39f5c002a68e7513d2049aff8eefe934
                                                                                 arscBaseCrc:2493606535
                                                                                 pattern:resources\.arsc
                                                                                 pattern:assets/.*
                                                                                 pattern:r/.*
                                                                                 pattern:res/.*
                                                                                 addedSet:r/z/ad7.png
                                                                                 largeModifiedSet:resources.arsc
10-14 17:54:01.924 4471-4486/com.boohee.one:patch W/Tinker.ResDiffPatchInternal: success recover large modify file:/data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.arsc , file size:649576, use time:183
10-14 17:54:01.924 4471-4486/com.boohee.one:patch W/Tinker.ResDiffPatchInternal: success recover all large modify use time:260
10-14 17:54:05.714 4471-4486/com.boohee.one:patch I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.arsc
10-14 17:54:05.834 4471-4486/com.boohee.one:patch I/Tinker.ResDiffPatchInternal: final new resource file:/data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.apk, entry count:2942, size:13268843
10-14 17:54:05.834 4471-4486/com.boohee.one:patch I/Tinker.ResDiffPatchInternal: recover resource result:true, cost:4172, isNewPatch:true
10-14 17:54:05.839 4471-4486/com.boohee.one:patch W/Tinker.UpgradePatch: UpgradePatch tryPatch: done, it is ok
10-14 17:54:05.839 4471-4486/com.boohee.one:patch I/Tinker.DefaultPatchReporter: patchReporter: patch all result path:/storage/sdcard0/Android/data/com.boohee.one/files/tinkerPatch/5.6.3_0.1.patch, success:true, cost:31342, isUpgrade:true
10-14 17:54:05.839 4471-4486/com.boohee.one:patch I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/patch.retry
10-14 17:54:05.839 4471-4486/com.boohee.one:patch I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/temp.apk
10-14 17:54:05.859 4107-4714/com.boohee.one I/Tinker.SampleResultService: SampleResultService receive result: 
                                                                          PatchResult: 
                                                                          isUpgradePatch:true
                                                                          isSuccess:true
                                                                          rawPatchFilePath:/storage/sdcard0/Android/data/com.boohee.one/files/tinkerPatch/5.6.3_0.1.patch
                                                                          costTime:31342
                                                                          patchVersion:8ecc2ea158fb6d42d4944d012ad069d2
                                                                          patchTinkerID:108
                                                                          baseTinkerID:108
10-14 17:54:05.869 4107-4714/com.boohee.one I/Tinker.SampleResultService: save delete raw patch file
10-14 17:54:05.869 4107-4714/com.boohee.one I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /storage/sdcard0/Android/data/com.boohee.one/files/tinkerPatch/5.6.3_0.1.patch
10-14 17:54:05.869 4107-4714/com.boohee.one I/Tinker.SampleResultService: tinker wait screen to restart process
10-14 17:54:19.724 4107-4107/com.boohee.one I/Tinker.SampleResultService: ScreenReceiver action [android.intent.action.SCREEN_OFF] 
10-14 17:54:19.734 4107-4107/com.boohee.one I/Tinker.SampleResultService: app is background now, i can kill quietly
10-14 17:54:21.329 4799-4799/com.boohee.one W/Tinker.TinkerLoader: tryLoadPatchFiles:isEnabledForResource:true
10-14 17:54:21.329 4799-4799/com.boohee.one E/dalvikvm: Could not find class 'android.util.ArrayMap', referenced from method com.tencent.tinker.loader.TinkerResourcePatcher.isResourceCanPatch
10-14 17:54:21.334 4799-4799/com.boohee.one W/dalvikvm: VFY: unable to resolve check-cast 2280 (Landroid/util/ArrayMap;) in Lcom/tencent/tinker/loader/TinkerResourcePatcher;
10-14 17:54:21.664 4799-4799/com.boohee.one W/Tinker.TinkerLoader: tinker safe mode preferName:tinker_own_config_com.boohee.one count:0
10-14 17:54:21.684 4799-4799/com.boohee.one W/Tinker.TinkerLoader: after tinker safe mode count:1
10-14 17:54:21.684 4799-4799/com.boohee.one I/Tinker.TinkerDexLoader: classloader: dalvik.system.PathClassLoader[/data/app/com.boohee.one-1.apk]
10-14 17:54:21.684 4799-4799/com.boohee.one W/Tinker.ClassLoaderAdder: checkDexInstall result:true
10-14 17:54:21.689 4799-4799/com.boohee.one I/Tinker.TinkerDexLoader: after loaded classloader: dalvik.system.PathClassLoader[/data/app/com.boohee.one-1.apk]
10-14 17:54:21.694 4799-4799/com.boohee.one I/Tinker.ResourceLoader: monkeyPatchExistingResources resource file:/data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.apk, use time: 3
10-14 17:54:21.694 4799-4799/com.boohee.one I/Tinker.TinkerLoader: tryLoadPatchFiles: load end, ok!
10-14 17:54:21.699 4799-4799/com.boohee.one D/Tinker.DefaultAppLike: onBaseContextAttached:
10-14 17:54:21.754 4799-4799/com.boohee.one I/Tinker.SamplePatchListener: application maxMemory:64
10-14 17:54:21.759 4799-4799/com.boohee.one W/Tinker.Tinker: tinker patch directory: /data/data/com.boohee.one/tinker
10-14 17:54:21.764 4799-4799/com.boohee.one I/Tinker.TinkerLoadResult: parseTinkerResult loadCode:0
10-14 17:54:21.764 4799-4799/com.boohee.one I/Tinker.TinkerLoadResult: parseTinkerResult oldVersion:, newVersion:8ecc2ea158fb6d42d4944d012ad069d2, current:8ecc2ea158fb6d42d4944d012ad069d2
10-14 17:54:21.764 4799-4799/com.boohee.one I/Tinker.TinkerLoadResult: oh yeah, tinker load all success
10-14 17:54:21.764 4799-4799/com.boohee.one I/Tinker.DefaultLoadReporter: patch version change from  to 8ecc2ea158fb6d42d4944d012ad069d2
10-14 17:54:21.764 4799-4799/com.boohee.one I/Tinker.DefaultLoadReporter: try kill all other process
10-14 17:54:21.769 4799-4799/com.boohee.one I/Tinker.DefaultLoadReporter: patch load result, path:/data/data/com.boohee.one/tinker, code:0, cost:538
10-14 17:54:21.799 4799-4799/com.boohee.one D/Tinker.DefaultAppLike: onCreate
10-14 17:54:22.119 4799-4814/com.boohee.one E/Tinker.SampleUncaughtExHandler: uncaughtException:Class ref in pre-verified class resolved to unexpected implementation
10-14 17:54:22.229 4799-4814/com.boohee.one E/Tinker.SampleUncaughtExHandler: tinker has fast crash 1 times
10-14 17:54:23.019 4830-4830/com.boohee.one:pushservice W/Tinker.TinkerLoader: tryLoadPatchFiles:isEnabledForResource:true
10-14 17:54:23.024 4830-4830/com.boohee.one:pushservice E/dalvikvm: Could not find class 'android.util.ArrayMap', referenced from method com.tencent.tinker.loader.TinkerResourcePatcher.isResourceCanPatch
10-14 17:54:23.024 4830-4830/com.boohee.one:pushservice W/dalvikvm: VFY: unable to resolve check-cast 2280 (Landroid/util/ArrayMap;) in Lcom/tencent/tinker/loader/TinkerResourcePatcher;
10-14 17:54:23.034 4830-4830/com.boohee.one:pushservice W/Tinker.TinkerLoader: tinker safe mode preferName:tinker_own_config_com.boohee.one:pushservice count:0
10-14 17:54:23.049 4830-4830/com.boohee.one:pushservice W/Tinker.TinkerLoader: after tinker safe mode count:1
10-14 17:54:23.049 4830-4830/com.boohee.one:pushservice I/Tinker.TinkerDexLoader: classloader: dalvik.system.PathClassLoader[/data/app/com.boohee.one-1.apk]
10-14 17:54:23.054 4830-4830/com.boohee.one:pushservice W/Tinker.ClassLoaderAdder: checkDexInstall result:true
10-14 17:54:23.054 4830-4830/com.boohee.one:pushservice I/Tinker.TinkerDexLoader: after loaded classloader: dalvik.system.PathClassLoader[/data/app/com.boohee.one-1.apk]
10-14 17:54:23.064 4830-4830/com.boohee.one:pushservice I/Tinker.ResourceLoader: monkeyPatchExistingResources resource file:/data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.apk, use time: 7
10-14 17:54:23.064 4830-4830/com.boohee.one:pushservice I/Tinker.TinkerLoader: tryLoadPatchFiles: load end, ok!
10-14 17:54:23.069 4830-4830/com.boohee.one:pushservice D/Tinker.DefaultAppLike: onBaseContextAttached:
10-14 17:54:23.094 4830-4830/com.boohee.one:pushservice I/Tinker.SamplePatchListener: application maxMemory:64
10-14 17:54:23.094 4830-4830/com.boohee.one:pushservice W/Tinker.Tinker: tinker patch directory: /data/data/com.boohee.one/tinker
10-14 17:54:23.099 4830-4830/com.boohee.one:pushservice I/Tinker.TinkerLoadResult: parseTinkerResult loadCode:0
10-14 17:54:23.099 4830-4830/com.boohee.one:pushservice I/Tinker.TinkerLoadResult: parseTinkerResult oldVersion:8ecc2ea158fb6d42d4944d012ad069d2, newVersion:8ecc2ea158fb6d42d4944d012ad069d2, current:8ecc2ea158fb6d42d4944d012ad069d2
10-14 17:54:23.099 4830-4830/com.boohee.one:pushservice I/Tinker.TinkerLoadResult: oh yeah, tinker load all success
10-14 17:54:23.099 4830-4830/com.boohee.one:pushservice I/Tinker.DefaultLoadReporter: patch load result, path:/data/data/com.boohee.one/tinker, code:0, cost:200
10-14 17:54:23.109 4830-4830/com.boohee.one:pushservice D/Tinker.DefaultAppLike: onCreate
10-14 17:54:23.204 4830-4830/com.boohee.one:pushservice W/Tinker.UpgradePatchRetry: onPatchRetryLoad retry is not main process, just return
10-14 17:54:28.654 4854-4854/com.boohee.one W/Tinker.TinkerLoader: tryLoadPatchFiles:isEnabledForResource:true
10-14 17:54:28.664 4854-4854/com.boohee.one E/dalvikvm: Could not find class 'android.util.ArrayMap', referenced from method com.tencent.tinker.loader.TinkerResourcePatcher.isResourceCanPatch
10-14 17:54:28.664 4854-4854/com.boohee.one W/dalvikvm: VFY: unable to resolve check-cast 2280 (Landroid/util/ArrayMap;) in Lcom/tencent/tinker/loader/TinkerResourcePatcher;
10-14 17:54:28.674 4854-4854/com.boohee.one W/Tinker.TinkerLoader: tinker safe mode preferName:tinker_own_config_com.boohee.one count:0
10-14 17:54:28.684 4854-4854/com.boohee.one W/Tinker.TinkerLoader: after tinker safe mode count:1
10-14 17:54:28.684 4854-4854/com.boohee.one I/Tinker.TinkerDexLoader: classloader: dalvik.system.PathClassLoader[/data/app/com.boohee.one-1.apk]
10-14 17:54:28.689 4854-4854/com.boohee.one W/Tinker.ClassLoaderAdder: checkDexInstall result:true
10-14 17:54:28.689 4854-4854/com.boohee.one I/Tinker.TinkerDexLoader: after loaded classloader: dalvik.system.PathClassLoader[/data/app/com.boohee.one-1.apk]
10-14 17:54:28.694 4854-4854/com.boohee.one I/Tinker.ResourceLoader: monkeyPatchExistingResources resource file:/data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.apk, use time: 8
10-14 17:54:28.694 4854-4854/com.boohee.one I/Tinker.TinkerLoader: tryLoadPatchFiles: load end, ok!
10-14 17:54:28.704 4854-4854/com.boohee.one D/Tinker.DefaultAppLike: onBaseContextAttached:
10-14 17:54:28.734 4854-4854/com.boohee.one I/Tinker.SamplePatchListener: application maxMemory:64
10-14 17:54:28.739 4854-4854/com.boohee.one W/Tinker.Tinker: tinker patch directory: /data/data/com.boohee.one/tinker
10-14 17:54:28.744 4854-4854/com.boohee.one I/Tinker.TinkerLoadResult: parseTinkerResult loadCode:0
10-14 17:54:28.744 4854-4854/com.boohee.one I/Tinker.TinkerLoadResult: parseTinkerResult oldVersion:8ecc2ea158fb6d42d4944d012ad069d2, newVersion:8ecc2ea158fb6d42d4944d012ad069d2, current:8ecc2ea158fb6d42d4944d012ad069d2
10-14 17:54:28.744 4854-4854/com.boohee.one I/Tinker.TinkerLoadResult: oh yeah, tinker load all success
10-14 17:54:28.749 4854-4854/com.boohee.one I/Tinker.DefaultLoadReporter: patch load result, path:/data/data/com.boohee.one/tinker, code:0, cost:243
10-14 17:54:28.759 4854-4854/com.boohee.one D/Tinker.DefaultAppLike: onCreate
10-14 17:54:28.844 4854-4854/com.boohee.one W/Tinker.UpgradePatchRetry: onPatchRetryLoad retry info not exist, just return
10-14 17:54:29.149 4854-4870/com.boohee.one E/Tinker.SampleUncaughtExHandler: uncaughtException:Class ref in pre-verified class resolved to unexpected implementation
10-14 17:54:29.184 4854-4870/com.boohee.one E/Tinker.SampleUncaughtExHandler: tinker has fast crash 2 times
10-14 17:54:35.199 4892-4892/com.boohee.one W/Tinker.TinkerLoader: tryLoadPatchFiles:isEnabledForResource:true
10-14 17:54:35.199 4892-4892/com.boohee.one E/dalvikvm: Could not find class 'android.util.ArrayMap', referenced from method com.tencent.tinker.loader.TinkerResourcePatcher.isResourceCanPatch
10-14 17:54:35.204 4892-4892/com.boohee.one W/dalvikvm: VFY: unable to resolve check-cast 2280 (Landroid/util/ArrayMap;) in Lcom/tencent/tinker/loader/TinkerResourcePatcher;
10-14 17:54:35.209 4892-4892/com.boohee.one W/Tinker.TinkerLoader: tinker safe mode preferName:tinker_own_config_com.boohee.one count:0
10-14 17:54:35.224 4892-4892/com.boohee.one W/Tinker.TinkerLoader: after tinker safe mode count:1
10-14 17:54:35.224 4892-4892/com.boohee.one I/Tinker.TinkerDexLoader: classloader: dalvik.system.PathClassLoader[/data/app/com.boohee.one-1.apk]
10-14 17:54:35.229 4892-4892/com.boohee.one W/Tinker.ClassLoaderAdder: checkDexInstall result:true
10-14 17:54:35.229 4892-4892/com.boohee.one I/Tinker.TinkerDexLoader: after loaded classloader: dalvik.system.PathClassLoader[/data/app/com.boohee.one-1.apk]
10-14 17:54:35.234 4892-4892/com.boohee.one I/Tinker.ResourceLoader: monkeyPatchExistingResources resource file:/data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.apk, use time: 7
10-14 17:54:35.234 4892-4892/com.boohee.one I/Tinker.TinkerLoader: tryLoadPatchFiles: load end, ok!
10-14 17:54:35.244 4892-4892/com.boohee.one D/Tinker.DefaultAppLike: onBaseContextAttached:
10-14 17:54:35.269 4892-4892/com.boohee.one I/Tinker.SamplePatchListener: application maxMemory:64
10-14 17:54:35.274 4892-4892/com.boohee.one W/Tinker.Tinker: tinker patch directory: /data/data/com.boohee.one/tinker
10-14 17:54:35.279 4892-4892/com.boohee.one I/Tinker.TinkerLoadResult: parseTinkerResult loadCode:0
10-14 17:54:35.279 4892-4892/com.boohee.one I/Tinker.TinkerLoadResult: parseTinkerResult oldVersion:8ecc2ea158fb6d42d4944d012ad069d2, newVersion:8ecc2ea158fb6d42d4944d012ad069d2, current:8ecc2ea158fb6d42d4944d012ad069d2
10-14 17:54:35.284 4892-4892/com.boohee.one I/Tinker.TinkerLoadResult: oh yeah, tinker load all success
10-14 17:54:35.284 4892-4892/com.boohee.one I/Tinker.DefaultLoadReporter: patch load result, path:/data/data/com.boohee.one/tinker, code:0, cost:248
10-14 17:54:35.294 4892-4892/com.boohee.one D/Tinker.DefaultAppLike: onCreate
10-14 17:54:35.354 4892-4892/com.boohee.one W/Tinker.UpgradePatchRetry: onPatchRetryLoad retry info not exist, just return
10-14 17:54:35.644 4892-4907/com.boohee.one E/Tinker.SampleUncaughtExHandler: uncaughtException:Class ref in pre-verified class resolved to unexpected implementation
10-14 17:54:35.674 4892-4907/com.boohee.one E/Tinker.SampleUncaughtExHandler: tinker has fast crash 3 times
10-14 17:55:16.649 5439-5439/com.boohee.one W/Tinker.TinkerLoader: tryLoadPatchFiles:isEnabledForResource:true
10-14 17:55:16.649 5439-5439/com.boohee.one E/dalvikvm: Could not find class 'android.util.ArrayMap', referenced from method com.tencent.tinker.loader.TinkerResourcePatcher.isResourceCanPatch
10-14 17:55:16.649 5439-5439/com.boohee.one W/dalvikvm: VFY: unable to resolve check-cast 2280 (Landroid/util/ArrayMap;) in Lcom/tencent/tinker/loader/TinkerResourcePatcher;
10-14 17:55:16.669 5439-5439/com.boohee.one W/Tinker.TinkerLoader: tinker safe mode preferName:tinker_own_config_com.boohee.one count:0
10-14 17:55:16.684 5439-5439/com.boohee.one W/Tinker.TinkerLoader: after tinker safe mode count:1
10-14 17:55:16.684 5439-5439/com.boohee.one I/Tinker.TinkerDexLoader: classloader: dalvik.system.PathClassLoader[/data/app/com.boohee.one-1.apk]
10-14 17:55:16.689 5439-5439/com.boohee.one W/Tinker.ClassLoaderAdder: checkDexInstall result:true
10-14 17:55:16.689 5439-5439/com.boohee.one I/Tinker.TinkerDexLoader: after loaded classloader: dalvik.system.PathClassLoader[/data/app/com.boohee.one-1.apk]
10-14 17:55:16.694 5439-5439/com.boohee.one I/Tinker.ResourceLoader: monkeyPatchExistingResources resource file:/data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.apk, use time: 4
10-14 17:55:16.694 5439-5439/com.boohee.one I/Tinker.TinkerLoader: tryLoadPatchFiles: load end, ok!
10-14 17:55:16.699 5439-5439/com.boohee.one D/Tinker.DefaultAppLike: onBaseContextAttached:
10-14 17:55:16.714 5439-5439/com.boohee.one I/Tinker.SamplePatchListener: application maxMemory:64
10-14 17:55:16.719 5439-5439/com.boohee.one W/Tinker.Tinker: tinker patch directory: /data/data/com.boohee.one/tinker
10-14 17:55:16.724 5439-5439/com.boohee.one I/Tinker.TinkerLoadResult: parseTinkerResult loadCode:0
10-14 17:55:16.724 5439-5439/com.boohee.one I/Tinker.TinkerLoadResult: parseTinkerResult oldVersion:8ecc2ea158fb6d42d4944d012ad069d2, newVersion:8ecc2ea158fb6d42d4944d012ad069d2, current:8ecc2ea158fb6d42d4944d012ad069d2
10-14 17:55:16.724 5439-5439/com.boohee.one I/Tinker.TinkerLoadResult: oh yeah, tinker load all success
10-14 17:55:16.724 5439-5439/com.boohee.one I/Tinker.DefaultLoadReporter: patch load result, path:/data/data/com.boohee.one/tinker, code:0, cost:200
10-14 17:55:16.734 5439-5439/com.boohee.one D/Tinker.DefaultAppLike: onCreate
10-14 17:55:16.779 5439-5439/com.boohee.one W/Tinker.UpgradePatchRetry: onPatchRetryLoad retry info not exist, just return
10-14 17:55:16.954 5439-5476/? E/Tinker.SampleUncaughtExHandler: uncaughtException:Class ref in pre-verified class resolved to unexpected implementation
10-14 17:55:16.964 5439-5476/? E/Tinker.TinkerApplicationHelper: it is not safety to clean patch when tinker is loaded, you should kill all your process after clean!
10-14 17:55:16.964 5439-5476/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/patch-8ecc2ea1.apk
10-14 17:55:16.964 5439-5476/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/classes.dex.jar
10-14 17:55:16.964 5439-5476/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/test.dex.jar
10-14 17:55:16.964 5439-5476/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex
10-14 17:55:16.964 5439-5476/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/odex/classes.dex.dex
10-14 17:55:16.964 5439-5476/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/odex/test.dex.dex
10-14 17:55:16.964 5439-5476/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/odex
10-14 17:55:16.964 5439-5476/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.apk
10-14 17:55:16.964 5439-5476/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/res
10-14 17:55:16.964 5439-5476/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1
10-14 17:55:16.964 5439-5476/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/info.lock
10-14 17:55:16.964 5439-5476/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/patch.info
10-14 17:55:16.964 5439-5476/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker
10-14 17:55:16.969 5439-5476/? E/Tinker.SampleUncaughtExHandler: tinker has fast crash more than 3, we just clean patch

@w4lle w4lle changed the title from 三星 galaxy note2 Android4.1.2 uncaughtException:Class ref in pre-verified class resolved to unexpected implementation to 三星 galaxy note2 Android4.1.2 报错uncaughtException:Class ref in pre-verified class resolved to unexpected implementation Oct 14, 2016

@shwenzhang

This comment has been minimized.

Show comment
Hide comment
@shwenzhang

shwenzhang Oct 14, 2016

Collaborator

你要看看接入的几个类设置的对不对
ApplcationLike
tinkerPatch dex loader
传入application的参数是否通过string方式

Collaborator

shwenzhang commented Oct 14, 2016

你要看看接入的几个类设置的对不对
ApplcationLike
tinkerPatch dex loader
传入application的参数是否通过string方式

@w4lle

This comment has been minimized.

Show comment
Hide comment
@w4lle

w4lle Oct 14, 2016

@shwenzhang
接入方式没有问题,同样的基准宝和补丁包
测试了其他几台机器没有问题。

w4lle commented Oct 14, 2016

@shwenzhang
接入方式没有问题,同样的基准宝和补丁包
测试了其他几台机器没有问题。

@w4lle

This comment has been minimized.

Show comment
Hide comment
@w4lle

w4lle Oct 14, 2016

@shwenzhang
对比同样的基准包和补丁包,在魅族 mx3 Android5.0.1 没有问题。log如下

10-14 18:14:37.468 21169-21189/? W/Tinker.UpgradePatchRetry: try copy file: /storage/emulated/0/Android/data/com.boohee.one/files/tinkerPatch/5.6.3_0.1.patch to /data/data/com.boohee.one/tinker/temp.apk
10-14 18:14:37.472 21169-21189/? I/Tinker.TinkerPatchService: try to increase patch process priority
10-14 18:14:37.505 21169-21189/? I/Tinker.UpgradePatch: UpgradePatch tryPatch:dexDiffMd5:8ecc2ea158fb6d42d4944d012ad069d2
10-14 18:14:37.505 21169-21189/? I/Tinker.UpgradePatch: UpgradePatch tryPatch:patchVersionDirectory:/data/data/com.boohee.one/tinker/patch-8ecc2ea1
10-14 18:14:37.507 21169-21189/? W/Tinker.UpgradePatch: UpgradePatch after /storage/emulated/0/Android/data/com.boohee.one/files/tinkerPatch/5.6.3_0.1.patch size:19414, /data/data/com.boohee.one/tinker/patch-8ecc2ea1/patch-8ecc2ea1.apk size:19414
10-14 18:14:43.531 21169-21189/? W/Tinker.DexDiffPatchInternal: success recover dex file: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/classes.dex.jar, use time: 5982
10-14 18:14:43.532 21169-21189/? I/Tinker.DexDiffPatchInternal: try Extracting /data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/test.dex.jar
10-14 18:14:43.533 21169-21189/? I/Tinker.DexDiffPatchInternal: isExtractionSuccessful: true
10-14 18:14:43.688 21169-21189/? I/Tinker.DexDiffPatchInternal: success dex optimize file, path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/classes.dex.jar, use time: 154
10-14 18:14:43.856 21169-21189/? I/Tinker.DexDiffPatchInternal: success dex optimize file, path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/test.dex.jar, use time: 168
10-14 18:14:43.856 21169-21189/? I/Tinker.DexDiffPatchInternal: recover dex result:true, cost:6348, isUpgradePatch:true
10-14 18:14:43.857 21169-21189/? W/Tinker.BsDiffPatchInternal: patch recover, library is not contained
10-14 18:14:43.859 21169-21189/? I/Tinker.ResDiffPatchInternal: res dir: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/, meta: resArscMd5:39f5c002a68e7513d2049aff8eefe934
                                                                arscBaseCrc:2493606535
                                                                pattern:assets/.*
                                                                pattern:res/.*
                                                                pattern:r/.*
                                                                pattern:resources\.arsc
                                                                addedSet:r/z/ad7.png
                                                                largeModifiedSet:resources.arsc
10-14 18:14:43.937 21169-21189/? W/Tinker.ResDiffPatchInternal: success recover large modify file:/data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.arsc , file size:649576, use time:47
10-14 18:14:43.937 21169-21189/? W/Tinker.ResDiffPatchInternal: success recover all large modify use time:77
10-14 18:14:45.377 21169-21189/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.arsc
10-14 18:14:45.423 21169-21189/? I/Tinker.ResDiffPatchInternal: final new resource file:/data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.apk, entry count:2942, size:13268843
10-14 18:14:45.423 21169-21189/? I/Tinker.ResDiffPatchInternal: recover resource result:true, cost:1565, isNewPatch:true
10-14 18:14:45.500 21169-21189/? W/Tinker.UpgradePatch: UpgradePatch tryPatch: done, it is ok
10-14 18:14:45.502 21169-21189/? I/Tinker.DefaultPatchReporter: patchReporter: patch all result path:/storage/emulated/0/Android/data/com.boohee.one/files/tinkerPatch/5.6.3_0.1.patch, success:true, cost:8028, isUpgrade:true
10-14 18:14:45.502 21169-21189/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/patch.retry
10-14 18:14:45.502 21169-21189/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/temp.apk
10-14 18:14:46.332 21073-21336/? I/Tinker.SampleResultService: SampleResultService receive result: 
                                                               PatchResult: 
                                                               isUpgradePatch:true
                                                               isSuccess:true
                                                               rawPatchFilePath:/storage/emulated/0/Android/data/com.boohee.one/files/tinkerPatch/5.6.3_0.1.patch
                                                               costTime:8028
                                                               patchVersion:8ecc2ea158fb6d42d4944d012ad069d2
                                                               patchTinkerID:108
                                                               baseTinkerID:108
10-14 18:14:46.361 21073-21336/? I/Tinker.SampleResultService: save delete raw patch file
10-14 18:14:46.362 21073-21336/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /storage/emulated/0/Android/data/com.boohee.one/files/tinkerPatch/5.6.3_0.1.patch
10-14 18:14:46.363 21073-21336/? I/Tinker.SampleResultService: tinker wait screen to restart process
10-14 18:15:10.688 21073-21073/? I/Tinker.SampleResultService: ScreenReceiver action [android.intent.action.SCREEN_OFF] 
10-14 18:15:10.691 21073-21073/? I/Tinker.SampleResultService: app is background now, i can kill quietly
10-14 18:15:11.117 21393-21393/? W/Tinker.TinkerLoader: tryLoadPatchFiles:isEnabledForResource:true
10-14 18:15:11.137 21393-21393/? W/Tinker.TinkerLoader: tinker safe mode preferName:tinker_own_config_com.boohee.one count:0
10-14 18:15:11.146 21393-21393/? W/Tinker.TinkerLoader: after tinker safe mode count:1
10-14 18:15:11.146 21393-21393/? I/Tinker.TinkerDexLoader: classloader: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.boohee.one-1/base.apk"],nativeLibraryDirectories=[/data/app/com.boohee.one-1/lib/arm, /vendor/lib, /system/lib]]]
10-14 18:15:11.157 21393-21393/? W/Tinker.ClassLoaderAdder: checkDexInstall result:true
10-14 18:15:11.157 21393-21393/? I/Tinker.TinkerDexLoader: after loaded classloader: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/classes.dex.jar", zip file "/data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/test.dex.jar", zip file "/data/app/com.boohee.one-1/base.apk"],nativeLibraryDirectories=[/data/app/com.boohee.one-1/lib/arm, /vendor/lib, /system/lib]]]
10-14 18:15:11.169 21393-21393/? I/Tinker.ResourceLoader: monkeyPatchExistingResources resource file:/data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.apk, use time: 12
10-14 18:15:11.170 21393-21393/? I/Tinker.TinkerLoader: tryLoadPatchFiles: load end, ok!
10-14 18:15:11.175 21393-21393/? D/Tinker.DefaultAppLike: onBaseContextAttached:
10-14 18:15:11.188 21393-21393/? I/Tinker.SamplePatchListener: application maxMemory:256
10-14 18:15:11.193 21393-21393/? W/Tinker.Tinker: tinker patch directory: /data/data/com.boohee.one/tinker
10-14 18:15:11.195 21393-21393/? I/Tinker.TinkerLoadResult: parseTinkerResult loadCode:0
10-14 18:15:11.195 21393-21393/? I/Tinker.TinkerLoadResult: parseTinkerResult oldVersion:, newVersion:8ecc2ea158fb6d42d4944d012ad069d2, current:8ecc2ea158fb6d42d4944d012ad069d2
10-14 18:15:11.196 21393-21393/? I/Tinker.TinkerLoadResult: oh yeah, tinker load all success
10-14 18:15:11.196 21393-21393/? I/Tinker.DefaultLoadReporter: patch version change from  to 8ecc2ea158fb6d42d4944d012ad069d2
10-14 18:15:11.196 21393-21393/? I/Tinker.DefaultLoadReporter: try kill all other process
10-14 18:15:11.202 21393-21393/? I/Tinker.DefaultLoadReporter: patch load result, path:/data/data/com.boohee.one/tinker, code:0, cost:129
10-14 18:15:11.312 21393-21393/? D/Tinker.DefaultAppLike: onCreate
10-14 18:15:11.976 21428-21428/? W/Tinker.TinkerLoader: tryLoadPatchFiles:isEnabledForResource:true
10-14 18:15:11.993 21428-21428/? W/Tinker.TinkerLoader: tinker safe mode preferName:tinker_own_config_com.boohee.one:pushservice count:0
10-14 18:15:12.006 21428-21428/? W/Tinker.TinkerLoader: after tinker safe mode count:1
10-14 18:15:12.007 21428-21428/? I/Tinker.TinkerDexLoader: classloader: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.boohee.one-1/base.apk"],nativeLibraryDirectories=[/data/app/com.boohee.one-1/lib/arm, /vendor/lib, /system/lib]]]
10-14 18:15:12.013 21428-21428/? W/Tinker.ClassLoaderAdder: checkDexInstall result:true
10-14 18:15:12.013 21428-21428/? I/Tinker.TinkerDexLoader: after loaded classloader: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/classes.dex.jar", zip file "/data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/test.dex.jar", zip file "/data/app/com.boohee.one-1/base.apk"],nativeLibraryDirectories=[/data/app/com.boohee.one-1/lib/arm, /vendor/lib, /system/lib]]]
10-14 18:15:12.020 21428-21428/? I/Tinker.ResourceLoader: monkeyPatchExistingResources resource file:/data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.apk, use time: 7
10-14 18:15:12.021 21428-21428/? I/Tinker.TinkerLoader: tryLoadPatchFiles: load end, ok!

w4lle commented Oct 14, 2016

@shwenzhang
对比同样的基准包和补丁包,在魅族 mx3 Android5.0.1 没有问题。log如下

10-14 18:14:37.468 21169-21189/? W/Tinker.UpgradePatchRetry: try copy file: /storage/emulated/0/Android/data/com.boohee.one/files/tinkerPatch/5.6.3_0.1.patch to /data/data/com.boohee.one/tinker/temp.apk
10-14 18:14:37.472 21169-21189/? I/Tinker.TinkerPatchService: try to increase patch process priority
10-14 18:14:37.505 21169-21189/? I/Tinker.UpgradePatch: UpgradePatch tryPatch:dexDiffMd5:8ecc2ea158fb6d42d4944d012ad069d2
10-14 18:14:37.505 21169-21189/? I/Tinker.UpgradePatch: UpgradePatch tryPatch:patchVersionDirectory:/data/data/com.boohee.one/tinker/patch-8ecc2ea1
10-14 18:14:37.507 21169-21189/? W/Tinker.UpgradePatch: UpgradePatch after /storage/emulated/0/Android/data/com.boohee.one/files/tinkerPatch/5.6.3_0.1.patch size:19414, /data/data/com.boohee.one/tinker/patch-8ecc2ea1/patch-8ecc2ea1.apk size:19414
10-14 18:14:43.531 21169-21189/? W/Tinker.DexDiffPatchInternal: success recover dex file: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/classes.dex.jar, use time: 5982
10-14 18:14:43.532 21169-21189/? I/Tinker.DexDiffPatchInternal: try Extracting /data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/test.dex.jar
10-14 18:14:43.533 21169-21189/? I/Tinker.DexDiffPatchInternal: isExtractionSuccessful: true
10-14 18:14:43.688 21169-21189/? I/Tinker.DexDiffPatchInternal: success dex optimize file, path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/classes.dex.jar, use time: 154
10-14 18:14:43.856 21169-21189/? I/Tinker.DexDiffPatchInternal: success dex optimize file, path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/test.dex.jar, use time: 168
10-14 18:14:43.856 21169-21189/? I/Tinker.DexDiffPatchInternal: recover dex result:true, cost:6348, isUpgradePatch:true
10-14 18:14:43.857 21169-21189/? W/Tinker.BsDiffPatchInternal: patch recover, library is not contained
10-14 18:14:43.859 21169-21189/? I/Tinker.ResDiffPatchInternal: res dir: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/, meta: resArscMd5:39f5c002a68e7513d2049aff8eefe934
                                                                arscBaseCrc:2493606535
                                                                pattern:assets/.*
                                                                pattern:res/.*
                                                                pattern:r/.*
                                                                pattern:resources\.arsc
                                                                addedSet:r/z/ad7.png
                                                                largeModifiedSet:resources.arsc
10-14 18:14:43.937 21169-21189/? W/Tinker.ResDiffPatchInternal: success recover large modify file:/data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.arsc , file size:649576, use time:47
10-14 18:14:43.937 21169-21189/? W/Tinker.ResDiffPatchInternal: success recover all large modify use time:77
10-14 18:14:45.377 21169-21189/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.arsc
10-14 18:14:45.423 21169-21189/? I/Tinker.ResDiffPatchInternal: final new resource file:/data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.apk, entry count:2942, size:13268843
10-14 18:14:45.423 21169-21189/? I/Tinker.ResDiffPatchInternal: recover resource result:true, cost:1565, isNewPatch:true
10-14 18:14:45.500 21169-21189/? W/Tinker.UpgradePatch: UpgradePatch tryPatch: done, it is ok
10-14 18:14:45.502 21169-21189/? I/Tinker.DefaultPatchReporter: patchReporter: patch all result path:/storage/emulated/0/Android/data/com.boohee.one/files/tinkerPatch/5.6.3_0.1.patch, success:true, cost:8028, isUpgrade:true
10-14 18:14:45.502 21169-21189/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/patch.retry
10-14 18:14:45.502 21169-21189/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /data/data/com.boohee.one/tinker/temp.apk
10-14 18:14:46.332 21073-21336/? I/Tinker.SampleResultService: SampleResultService receive result: 
                                                               PatchResult: 
                                                               isUpgradePatch:true
                                                               isSuccess:true
                                                               rawPatchFilePath:/storage/emulated/0/Android/data/com.boohee.one/files/tinkerPatch/5.6.3_0.1.patch
                                                               costTime:8028
                                                               patchVersion:8ecc2ea158fb6d42d4944d012ad069d2
                                                               patchTinkerID:108
                                                               baseTinkerID:108
10-14 18:14:46.361 21073-21336/? I/Tinker.SampleResultService: save delete raw patch file
10-14 18:14:46.362 21073-21336/? I/Tinker.PatchFileUtil: safeDeleteFile, try to delete path: /storage/emulated/0/Android/data/com.boohee.one/files/tinkerPatch/5.6.3_0.1.patch
10-14 18:14:46.363 21073-21336/? I/Tinker.SampleResultService: tinker wait screen to restart process
10-14 18:15:10.688 21073-21073/? I/Tinker.SampleResultService: ScreenReceiver action [android.intent.action.SCREEN_OFF] 
10-14 18:15:10.691 21073-21073/? I/Tinker.SampleResultService: app is background now, i can kill quietly
10-14 18:15:11.117 21393-21393/? W/Tinker.TinkerLoader: tryLoadPatchFiles:isEnabledForResource:true
10-14 18:15:11.137 21393-21393/? W/Tinker.TinkerLoader: tinker safe mode preferName:tinker_own_config_com.boohee.one count:0
10-14 18:15:11.146 21393-21393/? W/Tinker.TinkerLoader: after tinker safe mode count:1
10-14 18:15:11.146 21393-21393/? I/Tinker.TinkerDexLoader: classloader: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.boohee.one-1/base.apk"],nativeLibraryDirectories=[/data/app/com.boohee.one-1/lib/arm, /vendor/lib, /system/lib]]]
10-14 18:15:11.157 21393-21393/? W/Tinker.ClassLoaderAdder: checkDexInstall result:true
10-14 18:15:11.157 21393-21393/? I/Tinker.TinkerDexLoader: after loaded classloader: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/classes.dex.jar", zip file "/data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/test.dex.jar", zip file "/data/app/com.boohee.one-1/base.apk"],nativeLibraryDirectories=[/data/app/com.boohee.one-1/lib/arm, /vendor/lib, /system/lib]]]
10-14 18:15:11.169 21393-21393/? I/Tinker.ResourceLoader: monkeyPatchExistingResources resource file:/data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.apk, use time: 12
10-14 18:15:11.170 21393-21393/? I/Tinker.TinkerLoader: tryLoadPatchFiles: load end, ok!
10-14 18:15:11.175 21393-21393/? D/Tinker.DefaultAppLike: onBaseContextAttached:
10-14 18:15:11.188 21393-21393/? I/Tinker.SamplePatchListener: application maxMemory:256
10-14 18:15:11.193 21393-21393/? W/Tinker.Tinker: tinker patch directory: /data/data/com.boohee.one/tinker
10-14 18:15:11.195 21393-21393/? I/Tinker.TinkerLoadResult: parseTinkerResult loadCode:0
10-14 18:15:11.195 21393-21393/? I/Tinker.TinkerLoadResult: parseTinkerResult oldVersion:, newVersion:8ecc2ea158fb6d42d4944d012ad069d2, current:8ecc2ea158fb6d42d4944d012ad069d2
10-14 18:15:11.196 21393-21393/? I/Tinker.TinkerLoadResult: oh yeah, tinker load all success
10-14 18:15:11.196 21393-21393/? I/Tinker.DefaultLoadReporter: patch version change from  to 8ecc2ea158fb6d42d4944d012ad069d2
10-14 18:15:11.196 21393-21393/? I/Tinker.DefaultLoadReporter: try kill all other process
10-14 18:15:11.202 21393-21393/? I/Tinker.DefaultLoadReporter: patch load result, path:/data/data/com.boohee.one/tinker, code:0, cost:129
10-14 18:15:11.312 21393-21393/? D/Tinker.DefaultAppLike: onCreate
10-14 18:15:11.976 21428-21428/? W/Tinker.TinkerLoader: tryLoadPatchFiles:isEnabledForResource:true
10-14 18:15:11.993 21428-21428/? W/Tinker.TinkerLoader: tinker safe mode preferName:tinker_own_config_com.boohee.one:pushservice count:0
10-14 18:15:12.006 21428-21428/? W/Tinker.TinkerLoader: after tinker safe mode count:1
10-14 18:15:12.007 21428-21428/? I/Tinker.TinkerDexLoader: classloader: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.boohee.one-1/base.apk"],nativeLibraryDirectories=[/data/app/com.boohee.one-1/lib/arm, /vendor/lib, /system/lib]]]
10-14 18:15:12.013 21428-21428/? W/Tinker.ClassLoaderAdder: checkDexInstall result:true
10-14 18:15:12.013 21428-21428/? I/Tinker.TinkerDexLoader: after loaded classloader: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/classes.dex.jar", zip file "/data/data/com.boohee.one/tinker/patch-8ecc2ea1/dex/test.dex.jar", zip file "/data/app/com.boohee.one-1/base.apk"],nativeLibraryDirectories=[/data/app/com.boohee.one-1/lib/arm, /vendor/lib, /system/lib]]]
10-14 18:15:12.020 21428-21428/? I/Tinker.ResourceLoader: monkeyPatchExistingResources resource file:/data/data/com.boohee.one/tinker/patch-8ecc2ea1/res/resources.apk, use time: 7
10-14 18:15:12.021 21428-21428/? I/Tinker.TinkerLoader: tryLoadPatchFiles: load end, ok!
@w4lle

This comment has been minimized.

Show comment
Hide comment
@w4lle

w4lle Oct 14, 2016

如果出现Class ref in pre-verified class resolved to unexpected implementation异常, 请确认以下几点:Application中传入ApplicationLike的参数时是否采用字符串而不是Class.getName方式;新的Application是否已经加入到dex loader pattern中; 代码中显式的使用了Application类。

  • 参数方式
public class OneApplicationForTinker extends TinkerApplication {
super(ShareConstants.TINKER_ENABLE_ALL,"com.boohee.one.MyApplication","com.tencent.tinker.loader.TinkerLoader",false);
  • loader pattern
loader = ["com.tencent.tinker.loader.*",
                      "com.boohee.one.tinker.OneApplicationForTinker",
                      "com.boohee.one.patch.PatchHelper"
                      //use sample, let BaseBuildInfo unchangeable with tinker
//                      "tinker.sample.android.app.BaseBuildInfo"
            ]
  • 项目中没有显示的引用OneApplicationForTinker

w4lle commented Oct 14, 2016

如果出现Class ref in pre-verified class resolved to unexpected implementation异常, 请确认以下几点:Application中传入ApplicationLike的参数时是否采用字符串而不是Class.getName方式;新的Application是否已经加入到dex loader pattern中; 代码中显式的使用了Application类。

  • 参数方式
public class OneApplicationForTinker extends TinkerApplication {
super(ShareConstants.TINKER_ENABLE_ALL,"com.boohee.one.MyApplication","com.tencent.tinker.loader.TinkerLoader",false);
  • loader pattern
loader = ["com.tencent.tinker.loader.*",
                      "com.boohee.one.tinker.OneApplicationForTinker",
                      "com.boohee.one.patch.PatchHelper"
                      //use sample, let BaseBuildInfo unchangeable with tinker
//                      "tinker.sample.android.app.BaseBuildInfo"
            ]
  • 项目中没有显示的引用OneApplicationForTinker
@w4lle

This comment has been minimized.

Show comment
Hide comment
@w4lle

w4lle Oct 14, 2016

把PatchHelper类放到了loader pattern 里,然后报错在PatchHelper
if (SystemUtil.getProcessName(context).equalsIgnoreCase
SystemUtil没有在pattern导致了这个issue的发生。
必须要把PatchHelper引用到的所有类加入pattern才能避免发生问题。
但是tinker不建议这样么做,pattern一般只放一些配置信息。
具体原因还请 @shwenzhang 说明下。

w4lle commented Oct 14, 2016

把PatchHelper类放到了loader pattern 里,然后报错在PatchHelper
if (SystemUtil.getProcessName(context).equalsIgnoreCase
SystemUtil没有在pattern导致了这个issue的发生。
必须要把PatchHelper引用到的所有类加入pattern才能避免发生问题。
但是tinker不建议这样么做,pattern一般只放一些配置信息。
具体原因还请 @shwenzhang 说明下。

@w4lle w4lle closed this Oct 14, 2016

@w4lle

This comment has been minimized.

Show comment
Hide comment
@w4lle

w4lle Oct 25, 2016

简单解释下出现这个问题的原因。
首先有一个规则要明确,就是dex.loader中的类不会出现在任何一个全量补丁dex里。
由于将PatchHelper放到了dex.loader里,那么该类不会出现在补丁dex里。
所以如果PatchHelper引用了另外一个A类,那么A是可能出现在补丁dex里的。
dex顺序大概是这样,newDex1,newDex2,oldDex1,oldDex2.
由于补丁前在oldDex1中PatchHelper和A在同一个dex中,所以PatchHelper可能被打上了CLASS_ISPREVERIFIED标志。
而在加载补丁时,由于PatchHelper还在oldDex1中,而A类被打成补丁存放在newDex1中,PatchHelper调用A实际上是在newDex1中找到了A,所以符合

ClassObject* dvmResolveClass(const ClassObject* referrer, u4 classIdx,
    bool fromUnverifiedConstant)
{
....
       if (!fromUnverifiedConstant &&
            IS_CLASS_FLAG_SET(referrer, CLASS_ISPREVERIFIED))
...
}

这个条件,所以报错。

那么为什么ApplicationLike类如果被打成补丁放在了newDex1中不报错呢?
是因为在TinkerApplication中使用反射调用的ApplicationLike,而反射走了完全不同的路径,不会走到dvmResolveClass方法,也就不会报错了。反射最直接的目的也是为了隔离开这两个类,也就是隔离开了tinker组件和app。

w4lle commented Oct 25, 2016

简单解释下出现这个问题的原因。
首先有一个规则要明确,就是dex.loader中的类不会出现在任何一个全量补丁dex里。
由于将PatchHelper放到了dex.loader里,那么该类不会出现在补丁dex里。
所以如果PatchHelper引用了另外一个A类,那么A是可能出现在补丁dex里的。
dex顺序大概是这样,newDex1,newDex2,oldDex1,oldDex2.
由于补丁前在oldDex1中PatchHelper和A在同一个dex中,所以PatchHelper可能被打上了CLASS_ISPREVERIFIED标志。
而在加载补丁时,由于PatchHelper还在oldDex1中,而A类被打成补丁存放在newDex1中,PatchHelper调用A实际上是在newDex1中找到了A,所以符合

ClassObject* dvmResolveClass(const ClassObject* referrer, u4 classIdx,
    bool fromUnverifiedConstant)
{
....
       if (!fromUnverifiedConstant &&
            IS_CLASS_FLAG_SET(referrer, CLASS_ISPREVERIFIED))
...
}

这个条件,所以报错。

那么为什么ApplicationLike类如果被打成补丁放在了newDex1中不报错呢?
是因为在TinkerApplication中使用反射调用的ApplicationLike,而反射走了完全不同的路径,不会走到dvmResolveClass方法,也就不会报错了。反射最直接的目的也是为了隔离开这两个类,也就是隔离开了tinker组件和app。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment