开发者社区 问答 正文

Android 7.0(N)以上版本的JIT问题



问题


在Android 7.0(N)以上版本的系统中,出现了JIT问题引发异常

问题原因


在Android N以后的版本会对频繁使用的app进行jit操作,从而生成app image并更新oat文件。如果app image包含了补丁修改的class,就无法进行热更新。因为app在启动时会把这些类加入到PathClassloader的ClassTable中,系统在查找类时会直接使用base.apk中的class,最终导致修复不成功。不过,只有Android N版本后频繁使用的app会由系统进行jit,所以影响范围并不是非常广。

解决方案


Sophix 3.0.8以上版本已经自动处理,无需适配。如发现问题,可寻求群里技术支持解决。

  • 下载 : 钉钉客户端
  • 搜索热修复Android支持群号:11734260

展开
收起
猫饭先生 2017-10-25 09:34:39 1815 分享 版权
阿里云 AI 助理回答

针对您提到的在Android 7.0(N)及以上版本系统中,由于即时编译(JIT)引发的异常问题,特别是在使用热更新技术时遇到的挑战,阿里云Sophix热修复服务已经提供了相应的解决方案。Sophix是阿里云推出的一款针对Android和iOS应用的热修复解决方案,旨在帮助开发者无需用户重新下载安装即可快速修复线上问题。

根据您的描述,从Sophix 3.0.8版本开始,该问题已经被自动处理,这意味着对于使用了这一版本或更高版本Sophix SDK的开发者来说,通常不需要额外进行特殊适配来解决由JIT导致的热更新不成功问题。Sophix通过其内部机制确保了即使在Android N及之后版本的系统上,也能有效应对JIT编译对热更新可能产生的影响,保障补丁能够正确应用。

如果在升级到Sophix最新版后仍然遇到与JIT相关的问题或者有其他技术疑问,您可以按照提供的指引加入钉钉客户端的“热修复Android支持群”,群号为11734260,在那里可以获得来自阿里云技术支持团队的专业帮助和指导,以快速定位并解决问题。这样不仅能获得及时的技术支持,还能与其他开发者交流经验,共同探讨解决方案。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: