编译Android 7.1.1源码错误:make: *** [ninja_wrapper] Error 1

Android 7.0以后采用了Jack server编译,如果直接下载源码编译的话会出现下面的编译错误

ninja: build stopped: subcommand failed.
make: *** [ninja_wrapper] Error 1

需要对jack-server进行相关配置,具体步骤如下:

1、查看根目录是否有”.jack-settings”

执行cd ~,进入根目录查看当前目录下是否有.jack-settings,如果没有自己在这个目录下创建此文件,具体内容如下:

# Server settings
SERVER_HOST=127.0.0.1
SERVER_PORT_SERVICE=8076
SERVER_PORT_ADMIN=8077
 
# Internal, do not touch
SETTING_VERSION=4

在当前目录执行或ls -al,注意查看此文件的权限是否为rw
如果不是的话,需要执行下面命令修改文件权限
chmod 600 .jack-settings

2、查看根目录是否有”.jack-server”目录

查看这个目录下是否有 config.properties文件,如果没有自己在这个目录下创建此文件,具体内容如下:

#Fri Jan 20 13:17:11 CST 2017
jack.server.max-jars-size=104857600
jack.server.max-service=4
jack.server.service.port=8076
jack.server.max-service.by-mem=1\=2147483648\:2\=3221225472\:3\=4294967296
jack.server.admin.port=8077
jack.server.config.version=2
jack.server.time-out=7200

此文件的权限也需要是rw,如果不是的话执行
chmod 600 config.properties

3、查看端口是否被占用

可以通过运行 netstat -apnt | grep 80命令查看 TCP 80端口占用情况:如果8076/8077端口被它人占用了,可以尝试改成8072/8073,或其它端口,使用一对未被使用的TCP 80端口号来设置Service 和 admin 的端口号(Jack Server 启动时默认分配的是8076和8077两个端口,我们挑选未使用的TCP端口时就以这两个端口为中心进行分配,方便管理),注意两个文件中的Service 和 admin 的端口号要分别保持一致

4、在编译前最好把jack-server配置好

可以利用”jack-admin”命令查看jack-server是否已经运行起来,具体如下:

#启动Jack server
jack-admin start-server
 
#查看Jack server状态
jack-admin server-stat
 
#查看当前服务器有那些Jack server是运行中的
jack-admin list-server
 
#停止Jack server
jack-admin stop-server

在编译的同时一定要将编译log 保存下来,以备出错时查看)!

你可能感兴趣的:(编译Android 7.1.1源码错误:make: *** [ninja_wrapper] Error 1)