解决方法
有2种解决办法,一种是编译的时候disable掉 jack server;还有一种就是 jack 在编译的时候,不是一个人在编译,导致是同一个 port,所以超时了,修改port即可。
1. Disable Server
这种简单粗暴,直接设置一个临时全局变量就可以了。
make *** ANDROID_FORCE_JACK_ENABLED=disabled -j32
2. 修改Port
先来看看Jack Server每个参数是什么意思。
SERVER=true 开启jack server.
SERVER_PORT_SERVICE=8072 设置TCP服务器端口号用来进行汇编编译
SERVER_PORT_ADMIN=8073 设置TCP服务器端口号用来管理员的编译管理
SERVER_COUNT=1 当前未使用,一般为默认
SERVER_NB_COMPILE=4 同时编译最大线程
SERVER_TIMEOUT=60 如果server没有在60s内没有反应,那么将会关掉此服务
SERVER_LOG=${SERVER_LOG:=$SERVER_DIR/jack-$SERVER_PORT_SERVICE.log} Log输出的位置
JACK_VM_COMMAND=${JACK_VM_COMMAND:=java} 启动JVM命令
把家目录下面的jack-setting文件和jack-server下config.properties文件里面的PORT修改为一致的即可。
下面是一个举例,修改较大的端口号,避免和其他的冲突。
# 这个文件是$HOME/.jack-settings
SERVER_PORT_SERVICE=28076
SERVER_PORT_ADMIN=28077
# 这个文件是$HOME/.jack-server/config.properties
jack.server.service.port=28076
jack.server.admin.port=28077