jack编译突然无法编译的问题
写在前面:
针对该问题,最好的解决方式,参考评论区给的最终解决方案。
配置文件中把TLS1.0跟TLS1.1的限制给去掉即可,修改/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security文件,去掉TLSv1,TLSv1.1即可,JAVA官网版本更新信息,链接:https://java.com/en/download/help/release_changes.html
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
include jdk.disabled.namedCurves
以下为个人踩坑记录。
1 背景
rk3399编译时,jack-admin总是报错,运行jack-admin start-server,之后,一直卡在连接状态,退不出来。查看report.xxx.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: Connection refused
* Failed to connect to 127.0.0.1 port 8077: Connection refused
2 尝试
参考网上例子,重装jack,改换端口,改jack-admin,所有能试的都试过了,仍然无法正常运行。
3 后来,在其它服务器上编译,是正常的,但是在prebuild/sdk/tools/下反复运行几次jack-admin xxx后,又会出现编译不过的问题了。
4 最后,发现是java1.8的版本升级了,之前的1.8的版本可能都没问题,只要升级了1.8.0_292这个版本就会出问题
yanhongfei@ubuntu:~/git_nct/RK3399System/RK3399-JD4-Android7.1/prebuilts/sdk/tools$ java -version
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~18.04-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
5 卸载java
先检查是否安装,命令:sudo dpkg --list | grep -i jdk
移除openjdk包,命令:sudo apt-get purge openjdk*
卸载 OpenJDK 相关包,命令:sudo apt-get purge icedtea-* openjdk-*
有些没卸载完,命令:sudo apt autoremove
再次检查是否卸载成功,命令:sudo dpkg --list | grep -i jdk
卸载完成
6 安装java,由于阿里云上的jdk只有1.8.0_292的版本可以正常升级,但这个版本又有问题,于是设置为清华源
6.1 更新清华源,下载
更改/etc/apt/source.list
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
6.1.1 更新源
yanhongfei@ubuntu:~$ sudo apt-get update
yanhongfei@ubuntu:~$ sudo apt-get upgrade #更新软件,一般不用调用
yanhongfei@ubuntu:~$ sudo apt-get autoremove
6.2 查找可用版本
yanhongfei@ubuntu:~$ sudo apt-cache madison openjdk-8-jdk
openjdk-8-jdk | 8u162-b12-1 | https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic/universe amd64 Packages
6.3 安装对应版本
yanhongfei@ubuntu:~$ sudo apt-get install openjdk-8-jdk=8u162-b12-1
6.3.1如果提示依赖问题,则按提示安装对应的版本
yanhongfei@ubuntu:~$ sudo apt-get install openjdk-8-jre=8u162-b12-1
yanhongfei@ubuntu:~$ sudo apt-get install openjdk-8-jre-headless=8u162-b12-1
6.4 输入命令java -version,看到希望的java版本被设置。
yanhongfei@ubuntu:~/git_nct/RK3399System$ java -version
openjdk version "1.8.0_162"
OpenJDK Runtime Environment (build 1.8.0_162-8u162-b12-1-b12)
OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode)
jack无法编译2.0版本
背景:
通过配置文件中把TLS1.0跟TLS1.1的限制给去掉,可解决在openjdk version "1.8.0_292"版本上的编译问题,在后期update后,java版本被升级到"1.8.0_312",又出现无法编译问题,未找到可行办法。于是重装jdk(有了之前的踩坑记录,这次就熟练多了)
1 卸载jdk
sudo apt purge -y openjdk-11-jre-headless
sudo apt purge -y openjdk-8-jre-headless
sudo apt purge -y default-jdk
2 重新安装指定版本
sudo apt-cache madison openjdk-8-jdk #查找可用版本,只有一个8u162-b12-1的较旧版本
sudo apt-get install openjdk-8-jdk=8u162-b12-1
sudo apt-get install openjdk-8-jre=8u162-b12-1
sudo apt-get install openjdk-8-jre-headless=8u162-b12-1
sudo apt-get install openjdk-8-jdk-headless=8u162-b12-1
注意, java, javac -version版本要一致
默认切换到使用opendjk8
sudo update-alternatives --config java
sudo update-alternatives --config javac
3 重新运行jack-admin start-server仍然无法运行、
查看.jack-server/logs下的,发现错误 “Failed to setup ssl context”,怀疑是jack-admin server需重新安装,于是
4重新安装jack-server
4.1删除jack-server
./jack-admin uninstall-server
rm ~/.jack-settings
4.2安装
./jack-admin install-server jack-launcher.jar jack-server-4.8.ALPHA.jar
3 重新运行jack-admin start-server, 成功
备注:若想继续用292,可以参考后续调试记录6
4 禁止自动升级
修改配置文件/etc/apt/apt.conf.d/10periodic。
将“1”改为“0”,保存即可。
$vim /etc/apt/apt.conf.d/10periodic
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0"
5 make时,出错:ninja: error: 'out/target/common/obj/APPS/TeleService_intermediates/classes.noshrob.jack', needed by
'out/target/common/obj/APPS/TeleServiceTests_intermediates/jack.check.timestamp', missing and no known rule to make it
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1
原因是当时为了屏蔽TeleService.apk,修改了Telephony/Android.mk,造成首次编译不通过,可以编译完了再改
修改RK3399-JD4-Android7.1/packages/services/Telephony/Android.mk,更改名字,使其不编译(注意,首次编译可能会不通过,可以编译完了再改)
#LOCAL_PACKAGE_NAME := TeleService
LOCAL_PACKAGE_NAME := BackTeleService
其实正确方式应该在PRODUCT_DEL_PACKAGES中添加TeleService,注意,在make前,先make installclean一下
PRODUCT_PACKAGES += \
Telecom \
TelephonyProvider \
MmsService
PRODUCT_DEL_PACKAGES += \
Music \
Calendar \
Contacts \
LiveTv \
Email \
DeskClock \
QuickSearchBox \
DocumentsUI \
TvSettings \
Launcher3 \
Launcher2 \
TeleService
6 纠结292版本。。。(最终是直接拷贝实现)
1 如想继续用292的source.list,可将原有包含有292版本的/etc/apt/sources.list替换为本机/etc/apt/sources.list
2 更新仓库
,然而更新,仍是162的版本,仓库 内无法找到292的版本,可手动拷贝压缩292的版本,
sudo apt-get update
备注: 添加openjdk仓库和删除仓库指令
sudo add-apt-repository ppa:openjdk-r/ppa
sudo add-apt-repository --remove ppa:openjdk-r/ppa
3 拷贝292版本
3.1 压缩292版本
yanhongfei@ubuntu:/usr/lib/jvm$ sudo tar -jcvf ../1.8.0.292_rk3399.tar.bz2 java-8-openjdk-amd64 java-1.8.0-openjdk-amd64
3.2 拷贝并解压
yanhongfei@ubuntu:/usr/lib/jvm$ sudo tar -xvjf 1.8.0.292_rk3399.tar.bz2
3.3 export
yanhongfei@ubuntu:~/Workspace/RK3399System_self$
yanhongfei@ubuntu:~/Workspace/RK3399System_self$ export LC_ALL=C
yanhongfei@ubuntu:~/Workspace/RK3399System_self$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
yanhongfei@ubuntu:~/Workspace/RK3399System_self$ export PATH=$JAVA_HOME/bin:$PATH
yanhongfei@ubuntu:~/Workspace/RK3399System_self$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
yanhongfei@ubuntu:~/Workspace/RK3399System_self$
yanhongfei@ubuntu:~/Workspace/RK3399System_self$
yanhongfei@ubuntu:~/Workspace/RK3399System_self$ java -version
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~18.04-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
yanhongfei@ubuntu:~/Workspace/RK3399System_self$ javac -version
javac 1.8.0_292
版本链接:已去掉TLSv1,TLSv1.1,可直接使用
openjdk版本1.8.0.292-互联网文档类资源-CSDN下载
jack编译突然无法编译的问题相关推荐
- android 关闭jack_Android7.0 配置JACK支持多用户同时编译
# Android7.0 配置JACK支持多用户同时编译 reference: 背景 需要在一个Android7平台上进行有关的工作,但是编译的时候发现有问题.记录一下.因为和同事共用一台服务器,因为 ...
- Jack Server--Android N AOSP编译--Failed to contact Jack server
准备 今天正式担任Android7.0(N)项目模块的开发和维护工作,借此机会git和make了一套系统代码用来研究.在编译的过程中,与以往系统不同的是Android7.0系统编译工具链使用了全新的J ...
- android 8.0如何编译,ubuntu16.0编译Android 8.0 Android O记录
一.必要的系统环境 硬盘200G,内存4G+,交换分区(swap)4G+(可装完系统后添加,见后面错误处理部分) 二.下载源码,国内可以在清华镜像站下载 网上有很多教程,这里就不再累述了 三.然后安装 ...
- H6机顶盒Android编译[2]-Android编译
注意:本人也是第一次android编译,记录其过程为方便自己,同时给初学者提供参考,不正确之处还望包含指正! 前言 使用易新泰的H6机顶盒平台,搭载全志H6处理器,使用易新泰提供的SDK环境,使用ub ...
- 即时编译和提前编译_即时编译说明
即时编译和提前编译 Just-in-time compilation is a method for improving the performance of interpreted programs ...
- 《编译与反编译技术实战 》一2.3 编译器的设计与实现概述
本节书摘来自华章出版社<编译与反编译技术实战 >一书中的第2章,第2.3节,庞建民 主编 ,刘晓楠 陶红伟 岳 峰 戴超 编著,更多章节内容可以访问云栖社区"华章计算机" ...
- xcode修改时间后就要重新编译_iOS 微信编译速度优化分享
前言 岁月真是个养猪场,这几年,人胖了,微信代码也翻了.记得 14 年转岗来微信时,用自己笔记本编译微信工程才十来分钟.如今用公司配的 17 年款 27-inch iMac 编译要接近半小时:偶然间更 ...
- 《编译与反编译技术实战》——第1章 实践的环境与工具 1.1 实践环境概述
本节书摘来自华章计算机<编译与反编译技术实战>一书中的第1章,第1.1节,作者 刘晓楠 陶红伟 岳峰 戴超,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第1 ...
- 《编译与反编译技术实战》——2.1节编译器、解释器及其工作方式
本节书摘来自华章社区<编译与反编译技术实战>一书中的第2章,第2.1节编译器.解释器及其工作方式,作者刘晓楠 陶红伟 岳 峰 戴超,更多章节内容可以访问云栖社区"华章社区&quo ...
- python源代码的后缀名是_Python代码编译与反编译
众所周知,Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议.那么很自然会有人有这样的疑问:难道Python程序只能以 ...
最新文章
- Http和Socket连接区别(ZT)
- Hyperface笔记
- mysql 修改表id值_修改数据库中表的id
- python转弯轨迹_使点沿着曲线轨迹移动
- VUE指令篇_不常用指令
- strcpy 函数的实现
- Python中静态方法的实现
- linux遍历目录源代码
- 创建线程的函数CreateThread
- 廖雪峰的python学习网址
- 一个maven错误:org/apache/maven/shared/filtering/MavenFilteringException
- u3d中如何添加avatar和状态机
- C语言课程设计--推箱子
- mtk协议与qc协议_通用充电器快充协议QC2.0,QC3.0,MTK PE,PE+,充电识别
- 5点促进软件外包转型升级
- 结构化数据、半结构化数据和非结构化数据
- Cubic interpolation
- 再谈防火墙的流量控制
- 电脑换个地方用有线就上不了网的问题
- 关于实现局域网内视频播放