Android 系统编译报错

目录

1.jack-server错误

2.lexer.cpp 报错


 今天在编译Android源代码时报出以下错误:

1.jack-server错误

FAILED: setup-jack-server 
/bin/bash -c "(prebuilts/sdk/tools/jack-admin install-server prebuilts/sdk/tools/jack-launcher.jar prebuilts/sdk/tools/jack-server-4.11.ALPHA.jar  2>&1 || (exit 0) ) && (JACK_SERVER_VM_ARGUMENTS=\"-Dfile.encoding=UTF-8 -XX:+TieredCompilation\" prebuilts/sdk/tools/jack-admin start-server 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update server prebuilts/sdk/tools/jack-server-4.11.ALPHA.jar 4.11.ALPHA 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-4.32.CANDIDATE.jar 4.32.CANDIDATE || exit 47 )"
Writing client settings in /home/helwens/.jack-settings
Installing jack server in "/home/helwens/.jack-server"

Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore /home/helwens/.jack-server/server.jks -destkeystore /home/helwens/.jack-server/server.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore /home/helwens/.jack-server/client.jks -destkeystore /home/helwens/.jack-server/client.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
Launching Jack server java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=/tmp -Dfile.encoding=UTF-8 -XX:+TieredCompilation -cp /home/helwens/.jack-server/launcher.jar com.android.jack.launcher.ServerLauncher
Jack server failed to (re)start, try 'jack-diagnose' or see Jack server log
SSL error when connecting to the Jack server. Try 'jack-diagnose'
SSL error when connecting to the Jack server. Try 'jack-diagnose'
ninja: build stopped: subcommand failed.
08:34:10 ninja failed with: exit status 1

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


之前编译可能没什么问题,但这次编译就突然出现问题了,根本原因是Android库偷偷地更新了一些代码导致的报错。

我们去到这个目录~/android-8.1.0_r1/prebuilts/sdk/tools,是源代码下面的一个prebuild tool目录,输入指令./jack-admin dump-report,就会出来如下Log

Creating report...
Dumping Jack server stacks...
Getting current user id...
Listing Jack server process...
Listing process using Jack server service port 8076...
Listing process using Jack server admin port 8077...
Collecting Jack client configuration...
Listing Jack server installation dir...
Collecting curl version...
Collecting curl connection info...
Collecting Jack server stats...
Collecting base64 info...
Zipping Jack server installation dir except keys and certificates...
Jack server report saved in 'jack-report.2378.zip'. Consider reviewing content before publishing.

其中我们最关注的是jack-report.2378.zip这个压缩包,打开压缩包里面的report.xxxx.txt文档,里面可以找到这次编译错误的根本原因:

$ JACK_EXTRA_CURL_OPTIONS=-v jack-admin list server
*   Trying 127.0.0.1...
* TCP_NODELAY set
* connect to 127.0.0.1 port 8077 failed: 拒绝连接
* Failed to connect to localhost port 8077: 拒绝连接
* Closing connection 0
No Jack server running. Try 'jack-admin start-server'

我们可以绕过去不采用jack命令来编译,把原来的make命令变成

make ANDROID_COMPILE_WITH_JACK = false

其根本原因是谷歌做了一次JDK TLS相关的更新

在这里插入图片描述

 Other notes: Disable TLS 1.0 and 1.1
TLS 1.0 and 1.1 are versions of the TLS protocol that are no longer considered secure and have been superseded by more secure and modern versions (TLS 1.2 and 1.3).
These versions have now been disabled by default. If you encounter issues, you can, at your own risk, re-enable the versions by removing “TLSv1” and/or “TLSv1.1” from the jdk.tls.disabledAlgorithms security property in the java.security configuration file.
See JDK-8202343
————————————————
版权声明:本文为CSDN博主「learnframework」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/learnframework/article/details/116861979

可以在进入这个文件/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security

sudo vi /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security

找到jdk.tls.disabledAlgorithms这一行(大概在第704行),之后把TLSv1, TLSv1.1删掉

 之后:wq保存

再回到android源代码目录,执行make clean和make

感谢千里马的共享,详情可关注:

Jack server failed,Try jack-diagnose,SSL error when connecting to the Jack server,8.1,7.1系统源码编译不过_learnframework的博客-CSDN博客

2.lexer.cpp 报错

FAILED: out/target/product/generic/obj/STATIC_LIBRARIES/libedify_intermediates/lexer.cpp 
/bin/bash -c "prebuilts/misc/linux-x86/flex/flex-2.5.39 -oout/target/product/generic/obj/STATIC_LIBRARIES/libedify_intermediates/lexer.cpp bootable/recovery/edify/lexer.ll"
flex-2.5.39: loadlocale.c:130:_nl_intern_locale_data: ?? 'cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' ???
Aborted (core dumped)
ninja: build stopped: subcommand failed.
10:59:14 ninja failed with: exit status 1
build/core/main.mk:21: recipe for target 'run_soong_ui' failed
make: *** [run_soong_ui] Error 1

解决办法:在make之前执行下面操作 export LC_ALL=C

参考Ubuntu 报错信息 recipe for target ‘run_soong_ui‘ failed make: *** [run_soong_ui] Error 1_xiaopangcame的博客-CSDN博客

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值