Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Ubuntu 15.10上构建android源代码时增加堆大小_Java_Android_Ubuntu - Fatal编程技术网

Java 在Ubuntu 15.10上构建android源代码时增加堆大小

Java 在Ubuntu 15.10上构建android源代码时增加堆大小,java,android,ubuntu,Java,Android,Ubuntu,我试图在ubuntu 15.10中构建android源代码,但我遇到了一个错误。现在我需要你的帮助来构建android源代码 including ./tools/external/fat32lib/Android.mk ... Starting build with ninja ninja: Entering directory `.' [ 0% 1/21542] Ensure Jack server is installed and started Jack server already i

我试图在ubuntu 15.10中构建android源代码,但我遇到了一个错误。现在我需要你的帮助来构建android源代码

including ./tools/external/fat32lib/Android.mk ...
Starting build with ninja
ninja: Entering directory `.'
[  0% 1/21542] Ensure Jack server is installed and started
Jack server already installed in "/home/smile/.jack-server"
Server is already running
[  0% 2/21542] Building with Jack: out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex
FAILED: /bin/bash out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex.rsp
Java heap space
Try increasing heap size with java option '-Xmx<size>'
Warning: This may have produced partial or corrupted output.
ninja: build stopped: subcommand failed.
build/core/ninja.mk:146: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1

#### make failed to build some targets (08:25 (mm:ss)) ####

我也遇到了同样的问题

问题是运行jack的虚拟机没有足够的内存

您可以尝试编辑jvm命令:

JACK_VM_COMMAND=${JACK_VM_COMMAND:="java -Xmx4096m"}
或减少并行插孔编译的数量

SERVER_NB_COMPILE=2
~/.jack文件中

你可以阅读详细信息

编辑: 改变。杰克的档案对我不起作用。 深入挖掘之后,我发现jack服务器是用out/host/linux-x86/bin/jack admin脚本启动的,它的参数可以通过jack\u server\u VM\u ARGUMENTS环境变量传递

因此,我的解决方案是在构建aosp之前设置并重新启动jack server:

export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
out/host/linux-x86/bin/jack-admin kill-server
out/host/linux-x86/bin/jack-admin start-server

如果您正在构建Android N,那么Jack配置文件将被更改。 按照过渡指南应用以上建议的配置

找到要更改的配置,找到它从哪里移动到哪里,
$HOME/.jack
,然后在那里进行更改

从服务器1.1(例如棉花糖)过渡到服务器1.3(例如。 N)

旧的Jack服务器使用了
$HOME/.Jack
配置文件。现在有了 替换为
$HOME/.jack settings
$HOME/.jack服务器/config.properties

如果这些新文件不存在

运行
jack admin start server
,它们将被创建

如果在
$HOME/.jack
中有自定义设置,下面介绍如何调整这些设置

步骤1

SERVER\u PORT\u SERVICE=XXXX
替换为中的
SERVER\u PORT\u SERVICE=XXXX
$HOME/.jack设置
中的jack.server.service.port=XXXX
$HOME/.jack服务器/config.properties

步骤2

SERVER\u PORT\u ADMIN=YYYY
替换为中的
SERVER\u PORT\u ADMIN=yyy
$HOME/.jack设置
中的jack.server.admin.port=YYYY
$HOME/.jack服务器/config.properties

步骤3

SERVER\u NB\u COMPILE=N
替换为中的
jack.SERVER.max service=N
$HOME/.jack服务器/config.properties

额外设置

SERVER\u TIMEOUT=ZZ
您可以替换为
jack.SERVER.TIMEOUT=ZZ
,但是 建议保持默认设置为“7200”(2小时)

$HOME/.jack
配置文件中的其他设置不需要更改 抄袭的。您仍应保留您的
$HOME/.jack
配置文件,以便 旧的Jack服务器,因为两个服务器版本都可以运行 同时

取自
,有关预编译\sdk\tools下的jack\u server\u setup.mk的详细信息

ifneq ($(ANDROID_JACK_VM_ARGS),)
jack_vm_args := $(ANDROID_JACK_VM_ARGS)
else
jack_vm_args := -Dfile.encoding=UTF-8 -XX:+TieredCompilation
endif
.....
ifneq ($(dist_goal),)
    $(hide) mkdir -p "$(DIST_DIR)/logs/jack/"
    $(hide) JACK_SERVER_VM_ARGUMENTS="$(jack_vm_args) -Dcom.android.jack.server.log.file=$(abspath $(DIST_DIR))/logs/jack/jack-server-%u-%g.log" $(PRIVATE_JACK_ADMIN) start-server 2>&1 || exit 0
else
    $(hide) JACK_SERVER_VM_ARGUMENTS="$(jack_vm_args)" $(PRIVATE_JACK_ADMIN) start-server 2>&1 || exit 0
endif
所以我们可以出口

ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g"
配置jack args。 然后在下面运行此命令:

./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server

转到build/core/config.mk并在中更改堆大小

APICHECK_命令:=$(APICHECK)-JXmx8g-J“类路径$(APICHECK_类路径)”

那它就可以正常工作了。
其他解决方案对我没有帮助。

请尝试添加

export ANDROID_JACK_VM_ARGS="-Xmx8192m -Xms512m -Dfile.encoding=UTF-8 -XX:+TieredCompilation"

.bashrc的末尾,重新启动Linux

对我来说很有用!请注意,jack admin源于~/.jack设置,因此这应该是永久存储变量的好地方。
./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server
export ANDROID_JACK_VM_ARGS="-Xmx8192m -Xms512m -Dfile.encoding=UTF-8 -XX:+TieredCompilation"