tomcat_282000
tomcat_282000
编patch包的时候本地会留一份合成之后的新dex,在这个路径下面: /build/outputs/apk/tinkerPatch//tempPatchedDexes 用baksmali或者dexdump看下com.b.c.d.e.f.a和com.b.c.d.e.f.a$12是不是都在新dex里?
你开了加固模式吗?或者你完全没修改过java代码?
可以把新旧包的 classes.dex 提取出来 baksmali 一下,再 diff 看看有哪些差异。一般这种问题都是新包没有 apply 旧包的 mapping,或者新旧包的 tinker 版本(bugly 接入的话就是 bugly 的 tinker support 库版本)不一致导致的。
近期相关issue: #1158 #1184 #1185
请更新到 1.9.14.5 确认问题是否解决。
Tinker目前还不支持Gradle 5.x,可以降级到Gradle 4.7和AGP 3.2.1,就能正常编译了。
文档忘记更新了,在 Android 10 上已经无法支持新增 Activity 了。
第一个问题和 #1207 是一样的,正在排查中; 第二个问题,isProtectedApp=true的时候只能作为加固过的包应用补丁,isProtectedApp=false的时候只能作为未加固的包应用补丁,两种情况共用同一个base包几乎必然会出现跑飞或者类访问异常的crash。
patch receive fail: /data/user/0/com.ruicai.rxdj/app_tmpPatch/tmpPatch.apk, code: -1 这个错误码表示在那台机器上tinker被出错保护逻辑禁用了,试试清空app数据,然后重试一次,再看下主进程和patch进程的log?
看下第一次卸载的时候patch进程有没有打log?(patch进程的log打在logcat里,release包如果有编译时移除logcat的操作要先关掉)