开发者社区> 问答> 正文

【移动热修复】Hotfix补丁工具报错排查步骤是什么?

Hotfix补丁工具报错排查步骤

展开
收起
EMAS支持组 2022-09-27 13:21:00 462 0
1 条回答
写回答
取消 提交回答
  • HotFix补丁工具报错排查步骤:

    遇到问题可以先通过常见问题页进行关键字搜索,或者使用云博士检索,一般都能命中相关的疑问。

    首先需要正确安装Java环境且在JDK7或以上才能正常使用,JDK6及以下需要卸载,如是Windows系统,并将C盘中Windows\System32和Windows\SysWOW64文件夹下的java.exe, javaw.exe and javaws.exe文件删掉。注:环境变量要配置,也就是等同于Android开发环境,如第一次配置环境变量,重启一下电脑;java安装包需在官网下载正版。

    MAC版本启动就崩溃,请将补丁工具移到“应用程序”目录下即可。

    生成补丁报错,提示no any patchClasses,这是因为打包apk的时候开启了instant run,造成apk内部的构造与不开启有差异,致使打补丁时对比不出新旧包的差异,导致修复不成功,要在打包apk的时候关闭instant run,新旧包都要重新生成,然后再打补丁包,重新应用补丁。

    生成补丁报错,提示没有资源差异等,解决办法:如没改动资源或so,可勾选不比较资源或so再次进行生成。

    如对应用进行加固,需在加固前使用补丁工具进行加固。

    如补丁工具在直接生成补丁过程时直接就崩溃,可能是工程中改了不能修改的部分,比如AndroidManifest清单文件,具体支持什么修复,可看Sophix是否支持任何代码和资源的修复?。

    自工具3.2.1版本起,新增了检查初始化功能。

    快速接入时,初始化initialize放到manifest直接注册的Application的attachBaseContext中。

    如有用到MutiDex,MultiDex.install(this)需要在initialize之前调用。

    queryAndLoadNewPatch方法不能在attachBaseContext中。

    快速和稳健接入都要:在initialize之前,不能调用非Android官方API类。

    如使用了MutiDex,并开启了混淆,在混淆规则中添加如下:

    //support库使用
    -keep class android.support.multidex.**{*;}
    //androidx库使用
    -keep class androidx.multidex.**{*;}
    

    如使用kotlin,使用Java语言写热修复初始化所在的Application类。原因:kotlin会自行先调用一个类。

    如有其他插件往初始化之前插入代码,自行设置该插件不往初始化所在的Application类插代码。

    如工具检查出的是匿名内部类,由于匿名内部类无法检查到具体类名,自行确定SophixStubApplication中无非系统API的使用,所以可以不勾选检查初始化。

    初始化所在的Application,新旧包保持完全一致,不要有改动。

    如开启了资源混淆resguard,需要将res/raw 和 res/mipmap下的xml资源需要keep住不做混淆。

    如提示dex不支持,将minSdkVersion设置15~21任一值,重新生成新旧包,再生成补丁。

    如是win10系统,上述问题定位完毕后,还是会有报错,修改一下程序兼容性或以管理员启动程序。

    补丁工具


    更多官方信息

    EMAS官网介绍:https://www.aliyun.com/product/emas

    Devops:https://www.aliyun.com/product/emascrash/mobile_devops

    移动热修复:https://www.aliyun.com/product/hotfix

    移动测试:https://www.aliyun.com/activity/emas/mqcexpert

    移动推送:https://www.aliyun.com/product/cps

    HTTPDNS:https://www.aliyun.com/product/httpdns

    EMAS 控制台: https://emas.console.aliyun.com/products

    2022-09-27 13:28:17
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
基于阿里巴巴以及合作伙伴的最佳实践,围绕大前端、云原生领域的相关技术热点(小程序、Serverless、应用中间件、低代码、DevOps)展开行业探讨,与开发者一起探寻云原生时代应用研发的新范式。
问答排行榜
最热
最新

相关电子书

更多
移动热修复新品发布 立即下载
阿里云移动服务新品发布-移动热修复 立即下载
《Java开发手册》2019最新版发布! 立即下载

相关实验场景

更多