Ubuntu Jack-server报错解决方案
报错关键部分如下:
Communication error with Jack server (35), try 'jack-diagnose' or see Jack server log
究其原因是新的Java版本禁用了TLSv1, TLSv1.1导致,可以用以下命令查看当前的Java版本:
java -version
方案1:版本降级
如果你的Java版本是8u292或者更高,那么请继续往下看。
接下来就需要卸载当前安装的版本,并使用aptitude 工具来安装新的版本
#更新软件列表
sudo apt update
#查询可使用的软件版本
sudo apt-cache madison openjdk-8-jdk
#卸载当前版本的openjdk
sudo apt remove openjdk-8-*
#安装aptitude包管理工具
sudo apt install aptitude
#使用aptitude 安装指定版本的openjdk 并解决依赖问题
sudo aptitude install openjdk-8-jdk=8u77-b03-3ubuntu3
注意:使用aptitude安装的时候可能会报无法安装的警告并提供了其他的安装方案,这里务必选择安装openjdk的方案,不要选择 not install 的方案,如果当前的方案不满足需求,可以选择n来切换下一个安装方案,直到出现可以安装openjdk。
方案2:启用TLSv1, TLSv1.1
修改配置文件:/etc/java-8-openjdk/security/java.security
修改前: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
修改后:jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
include jdk.disabled.namedCurves
重启服务:
aosp/prebuilts/sdk/tools/ 目录下执行./jack-admin kill-server && ./jack-admin start-server