背景
很多人在开发中,拉下一套新的代码会出现下列错误:
1.Failed to contact Jack server;
2.No Jack Server running;//jack server 被kill
这是由于Android7.0 采用Jack编译,不支持多人同时在线编译。出现了端口占用问题。
不明白Jack 编译的小伙伴可以看下我的这篇BLOG :
http://blog.csdn.net/Simon_Crystin/article/details/62426402
解决方法
下面就给出详细的解决方案:
我们需要做的就是改端口。
正常情况下,Android7.0(N)编译会出错三次。编译一次生成一个新的文件,下面就带领大家来爬坑。
第一次编译报错:
会在你的根目录生成一个 .jack-settings文件 (隐藏文件,如果在根目录找不到的话,请设置为显示隐藏文件)
进入修改端口:
给出修改后的结果:
这里有两点需要注意
1:默认两个端口是8076和8077,你改成和别人不一样的;
2:port是在0-65536范围设置,0-1024最好不要用,通常是熟知端口
改完了之后,你再去编译,这个时候又会报错;
第二次编译报错:
会在根目录下的 .jack-server下生成一个config.properties文件
给出修改后的结果:
注意:这里的修改要和上面一致。
完成了这一步,然后继续编译,又会报错:
No Jack Server running;
这个时候在.jack-server文件夹下执行 ls-al
查看文件的权限:
如图:
我们可以看到config.properties权限为rwx,,意思是可读,可写,可执行。我们需要把x权限删除。至于为什么要把x权限删除呢?jack-server里面的log说的很清楚:
config.properties must have permission rw ------- but have rwx------
执行 :chmod u-x config.properties
再执行ls-al 就可以看到修改成功了。(这个是linux权限管理,不懂得可以去了解下。)
再编译,应该就可以成功了。
反正端口占用的解决方案就是这样的,你看你到了第几步,直接执行下一步就好了。
在Android 7.0开发中遇到Jack编译错误,提示Failed to contact Jack server和No Jack Server running,原因是Jack不支持多人同时在线编译导致端口占用。解决方案包括修改Jack的端口号以避免冲突,并调整.config.properties文件的权限。通过改变端口和调整文件权限,可以解决编译问题。
Jack 不支持多人同时在线编译。&spm=1001.2101.3001.5002&articleId=70059457&d=1&t=3&u=c2913ed664c9476c9fa2faf73e000a4c)
6105

被折叠的 条评论
为什么被折叠?



