开发者社区> 问答> 正文

应用研发平台EMAS热修复补丁 一直生成不了,该如何解决?

应用研发平台EMAS热修复补丁 一直生成不了,该如何解决?

展开
收起
2401。 2023-08-27 15:22:12 64 0
3 条回答
写回答
取消 提交回答
  • 是个只会写bug的程序媛啊!!!

    EMAS热修复补丁一直生成不了的原因如下:

    • jar包损坏 。如果EMAS jar包存在损坏,可能导致无法生成补丁。
    • 版本不兼容 。EMAS客户端和服务端版本不兼容,也会导致生成补丁失败。

    此外,EMAS热修复补丁一直生成不了的原因还有:网络延迟、应用程序的大小和缺乏必要的权限等。
     

    2023-08-28 11:30:38
    赞同 展开评论 打赏
  • 您可以根据以下信息进行排查:
    image.png

    首先您可以按照文档中的测试方式进行测试,使用调试工具对补丁进行本地测试,详情请参见调试工具。注意此时初始化setEnableDebug值一定要为true,否则应用打不上补丁。然后将补丁上传到管理控制台,进行扫码测试,随后可以进行灰度发布测试。确认没问题后再进行全量发布。
    如果拉取后参数有错误或解压失败,可以先检查各参数是否完全正确,然后在文档中详细查看各参数的使用说明,尤其是AesKey的使用。
    在应用补丁后,提示“code=12”信息,这是冷启动生效,需要您结束App进程(注意是结束进程,不是退出App),使其重启即可。若您想了解补丁对应的状态码信息,请参见补丁常见状态码。
    补丁应用成功后,可能出现崩溃问题,以下是几个常见的问题:
    IOException异常,已经下载补丁却提示补丁找不到。
    可能是由于在初始化的回调或者其他位置存在cleanPatches导致的,现在SDK已有对应删除补丁的机制,cleanPatches方法不需要自己写,可以注释掉重复的方法,然后进行测试。
    找不到方法或类的崩溃。
    检查修复包是否使用基线包的mapping文件进行混淆。
    出现“java.lang.ClassNotFoundException”异常,或资源修改部分生效、部分未生效。
    请先查看初始化前的代码,是否可以调用系统类而不可以调用自定义类(例如自定义的LogUtils类)。检查当前运行加载补丁的包是否为对应的旧包;如果是Android Studio打包的APK,必须关闭Instant Run,并建议使用Release的包进行测试。
    如果热补丁在部分机型上加载后出现问题,将补丁工具勾选强制冷启动,重新打个补丁。
    也可以直接查看日志进行排查,上述问题在日志中都有体现,在日志中过滤Sophix即可获取热修复的日志。

    98dc46a40323220ad155f02e6fede689_b06a3507-78eb-4718-8eae-6b29fdaeba49.png

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

相关电子书

更多
五天玩转EMAS Serverless 立即下载
EMAS平台全景介绍 立即下载
低代码开发师(初级)实战教程 立即下载