ERROR: Dex2oat failed to compile a boot image. It is likely that the boot classpath is inconsistent.

 

 

 

 

分析过程:

一个神奇的BUG,开始只有一个人出现就没有去 后来同一天陆续有5个研发同学的开发机都出现 而我一直在服务上直接开发 编译调试一直没有出现 感觉需要去找下原因了 google后说法不一样 别人都是通过增加物理机内存解决(内存不足导致无法将dex转换为oat文件 没有什么编译错误是加一个8G内存条解决不了的,如果有,那就再加一根。或者关闭dex20at 其实这样也不太好 我试着改了下也无法解决)

没办法 只能继续看 从我上面的错误截图里面可以看到此时java 虚拟机的参数-Xms64m 估计是这个地方达到最大值了 导致溢出了 从这个入手最后找到了这部分相关的代码 就有了如下的解决方案

解决方案 修改build/make仓库dex2oat调用的地方

--- a/core/dex_preopt_libart.mk
+++ b/core/dex_preopt_libart.mk
@@ -39,7 +39,7 @@ DEX2OAT_IMAGE_XMX := $(call get-product-default-property,dalvik.vm.image-dex2oat
DEX2OAT_XMS := $(call get-product-default-property,dalvik.vm.dex2oat-Xms)
DEX2OAT_XMX := $(call get-product-default-property,dalvik.vm.dex2oat-Xmx)

-ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),mips mips64))
+ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),mips mips64 arm64))
# MIPS specific overrides.

 

TODO 虽然问题这样改就不会出现了 但是还是没能找到真正的原因 公司研发机的配置都是一样的  为什么只有个别人出现了呢 如果有大神知道 请帮忙解答一下撒

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值