欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 7.1编译到33%时出现JDK内存溢出的错误怎么办

程序员文章站 2022-05-23 22:11:55
android 7.1编译到33%时出现jdk内存溢出的错误: out of memory error (version 1.2-rc4 'carnac' (298900 f95...

android 7.1编译到33%时出现jdk内存溢出的错误:

out of memory error (version 1.2-rc4 'carnac' (298900 f95d7bdecfceb327f9d201a1348397ed8a843843 by android-jack-team@google.com)).
gc overhead limit exceeded.
try increasing heap size with java option '-xmx'.
warning: this may have produced partial or corrupted output.

错误日志里边列出了问题并且已经给出了解决方案 - 增加java-xmx大小,即设置一个较大的堆内存上限。

所以,解决办法是:

1、修改jack的配置文件prebuilts/sdk/tools/jack-admin

  这是一个管理jack的shell脚本,找到start-server函数,直接修改其启动参数,由原来的

jack_server_command="java -xx:maxjavastacktracedepth=-1 -djava.io.tmpdir=$tmpdir $jack_server_vm_arguments -cp $launcher_jar $launcher_name"

更改为

jack_server_command="java -xx:maxjavastacktracedepth=-1 -djava.io.tmpdir=$tmpdir $jack_server_vm_arguments -xmx4096m -cp $launcher_jar $launcher_name"

  此时jack服务器仍然在后台执行,所以我们需要将其停止,然后重启启动(make会自动启动jack服务器)才能使得修改后的参数生效。

  我们执行下面的命令此时jack服务器仍然在后台执行,所以我们需要将其停止,然后重启启动(make会自动启动jack服务器)才能使得修改后的参数生效。

  我们执行下面的命令:

#先停止服务
./prebuilts/sdk/tools/jack-admin stop-server

#重新开始服务
./prebuilts/sdk/tools/jack-admin start-server

?

详细的错误日志里边列出了问题并且已经给出了解决方案 - 增加java虚拟机的-xmx大小,即设置一个较大的堆内存上限。