移动热修复中华为设备上资源修复失败问题的解决方法

问题描述

阿里云移动热修复如果修改的图片资源不是位于drawable目录,在华为设备上加载补丁中的资源会出现找不到资源的问题。

问题原因

Android系统为了解决UI适配的问题,可以根据dpi设置图片资源。一般来说,我们会选择一个dpi去放置一套图片,比如在xxhdpi下放置一份高清图片资源。那在xxhdpi的设备上会具备最好的视觉效果,在其他dpi的设备上,系统会根据dpi情况对图片进行缩放来达到好的适配效果。但是在华为设备上加载补丁资源时,如果变更的图片资源在drawable目录下不存在,系统会校验失败,导致找不到资源。

解决方案

修改的图片资源需要在drawable目录下放置一份,来绕过华为系统的校验,由于drawable目录对应的是mdpi,所以一定要放置一份mdpi下的图片,否则可能因为系统缩放导致出现不符合预期的视觉效果。

适用于

  • 移动热修复