在线上代码 出现问题的时候,需要我们去热修复,当我们在修改好代码的时候,需要热修复,
1 第一步, git checkout 到出问题的版本,修改好需要修改的代码
2 :
- 在local.properties添加一行solidMode=true。
- 用命令行 gradle assembleRelease bundleRelease repackAll 命令打包。这种打包方式和准备上线的包是一致的。
3 通过编译命令 在对应的工程的
将文件中的jar 包解压,删除jar ,删除解压出来的除了我们需要修改的.class 文件的其他文件,注意有时候文件解压出来后面带有1的文件是内布类
4 我们cd 到sdk 的路径下,在cd 到build-tools 目录下 进入 到最好是最高的sdk 版本比如 android-23
5 使用 dx --dex --output=“xx/xx/classes.dex” class文件路径 。注意dex名字必须为classes.dex 这个class 文件路径到 /classes-obfuscated 这层
6 open ./ 打开文件夹, 生成classes.dex 文件
7 本地测试:在sdcard中创建ctriphf目录,把classes.dex zip后命名hf_XXXX.zip. 使用adb push 命令把zip文件push到手机中。如: adb push /Users/yb.wang/Work/hf_home.zip /sdcard/ctriphf
8 打开测试版本有问题的携程App,点击小瓢虫进入debug页面,点击读取热修复补丁。验证热修复是否成功,如果类已经被加载过了,要重新退出后在验证。