困扰我两天的RN问题

2018-01-27  本文已影响262人  T_Y_H

问题场景:

执行react-native run-android的时候出现如下错误:
Error:Execution failed for task ':Test:transformClassesWithDexForDebug'.

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: java.lang.UnsupportedOperationException

错误原因:

这个错误是由于引入了大量的第三方project导致jvm在编译的时候内存不足

解决办法:

这个情况可以在你项目的>android>app>build.gradle文件里面如下图所示加入:

image.png

dexOptions {
javaMaxHeapSize "4g"
}
一般人到了这一步基本已经解决了以上问题,但如果你不是一般人(你是二班的),那么请往下看:

场景二:以上方法“无效”(嘿嘿)

其实方法是有效的,无效的原因是因为你本地的jdk版本有问题,限制了你能申请的最大内存,不幸的是我刚好就是被限制了,成了“二班人”,我的jdk是1.8.0_121,刚好被限制了,更新jdk版本到1.8.0_161,如下检查:


image.png

没有打印错误信息,说明当前的jdk支持4g内存,

再次运行项目,完美编译通过

注:可以在cmd窗口下查看一下当前系统中的java环境中最大允许heap内存是多少,在命令行下用java-XmxXXXXM-version命令来进行测试,然后逐渐的增大XXXX的值,如果执行正常就表示指定的内存大小可用,否则会打印错误信息
上一篇下一篇

猜你喜欢

热点阅读