Android 7.0以上系统编译“Failed to contact Jack server...“或者“No Jack Server running...“报错解决方式

时间:2024-04-02 18:46:38

很多做android系统移植和开发的工程师,在编译android O 以上版本的系统的时候,会出现如下问题:

"Failed to contact Jack server..."或者"No Jack Server running..."这样的问题,

这种问题主要由于Android 7.0以上采用Jack编译,在同一台服务器上,不支持多人同时在线编译,出现端口占用的问题。

 

 

那么如何解决这个问题呢?

既然知道是不支持多人同时在线编译,端口占用的问题导致,那么肯定首先要修改端口。

首先在自己账户下根目录下找到一个隐藏文件,如果你直接ls看不到的话,可以使用ls -a -l 命令就能看到:

Android 7.0以上系统编译“Failed to contact Jack server...“或者“No Jack Server running...“报错解决方式

然后使用vi命令打开并修改该文件。

Android 7.0以上系统编译“Failed to contact Jack server...“或者“No Jack Server running...“报错解决方式

路上就是我修改后的,我改成了和其他人不会冲突的,特有的,6311和8533,

这里有个比较需要注意地方,端口号并不是我们随意去改,去指定的,是有范围限制的,

一般是在0-65536范围设置,0-1024最好不要用,因为可能已经被一些系统进程占用了,

改完之后退出保存即可。

到这里可以先编译一把,如果还报错的话,可以再做进一步修改。

这个时候就需要修改.jack-server目录下的config.properties文件

Android 7.0以上系统编译“Failed to contact Jack server...“或者“No Jack Server running...“报错解决方式

Android 7.0以上系统编译“Failed to contact Jack server...“或者“No Jack Server running...“报错解决方式

那么这个修改就要和我们前面设置的端口号要一致了。

修改完之后,保存,然后重新编译,这个时候可能还会报错,一般会报如下错误:

No Jack Server running;

这个时候在.jack-server文件夹下执行 ls-al,然后查看config.properties文件的权限,一般默认是rwx,

这个时候我们需要将x(可执行)的权限删除,至于为什么要删除,一般报错后,在这个目录下的logs中的日志会提示:

config.properties must have permission rw ------- but have rwx------

 

接下来我们就直接执行如下命令删除去X的权限即可。

chmod u-x config.properties

最后就变成如下这样就可以,这样重新在编译一次应该就OK了。

Android 7.0以上系统编译“Failed to contact Jack server...“或者“No Jack Server running...“报错解决方式