这里以我的解决方法为例
1.确定自己安装的编译系统
Linux test-Z490-UD 4.15.0-142-generic #146~16.04.1-Ubuntu SMP Tue Apr 13 09:27:15 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
2.java 版本
test@test-Z490-UD:~$ java -version
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~16.04.1-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
test@test-Z490-UD:~$ javac -version
javac 1.8.0_292
test@test-Z490-UD:~$
3. curl -v https://127.0.0.1:8076 这个包与连接要能执行,有错的话,我这边不影响,可以跳过做其它试验,回头来看这个问题
/
test@test-desktop:~$ curl -v https://127.0.0.1:8076
* Rebuilt URL to: https://127.0.0.1:8076/
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 8076 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS alert, Server hello (2):
* SSL certificate problem: self signed certificate
* stopped the pause stream!
* Closing connection 0
curl: (60) SSL certificate problem: self signed certificate
More details here: https://curl.haxx.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
test@test-desktop:~$
-bash: cd: /usr/lib/jvm/java-8-openjdk-amd64/bin/java: Not a directory
test@test-desktop:~$ cd /usr/lib/jvm/java-8-openjdk-amd64/
test@test-desktop:/usr/lib/jvm/java-8-openjdk-amd64$ ls
ASSEMBLY_EXCEPTION THIRD_PARTY_README bin docs include jre lib man src.zip
test@test-desktop:/usr/lib/jvm/java-8-openjdk-amd64$ cd ..
test@test-desktop:/usr/lib/jvm$ ls
java-1.8.0-openjdk-amd64 java-8-openjdk-amd64
test@test-desktop:/usr/lib/jvm$
/
[root@localhost ~]# whereis java
// 124服务器 //
test@test-Z490-UD:~$ curl -v https://127.0.0.1:8076
* Rebuilt URL to: https://127.0.0.1:8076/
* Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 8076 (#0)
* found 129 certificates in /etc/ssl/certs/ca-certificates.crt
* found 521 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* gnutls_handshake() failed: The TLS connection was non-properly terminated.
* Closing connection 0
curl: (35) gnutls_handshake() failed: The TLS connection was non-properly terminated.
test@test-Z490-UD:~$
// 124服务器 //
4.配置文件的权限确定
没有这个文件 ~/.jack-server/config.properties
先编译一次android源码,或者修改一下 ~/.jack-settings 的端口,记录下来,先编译一下,我这边就生成了
有这个文件,就可以修改端口了,没有这个文件,就不能修改,这个文件要编译自己生成的
5.tty只有一个人登录使用,不要多个tty登录去测试,如果一个tty登录编译能正确,那么就是多个用户端口的问题
这里的多个用户,一是指ubuntu下,或者linux下的不同用户,二是不同人的tty登录情况,个人总结与理解
所有,如果其它用户能编译能过,则自己在任何用户,任何tty的情况,包括ssh putty登录,都要重新统一配置jack-server的端口,并且
对jack-server停止,再启动 jack-admin restart-server
/*
Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore /home/ailiving/.jack-server/server.jks -destkeystore /home/test/.jack-server/server.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore /home/test/.jack-server/client.jks -destkeystore /home/test/.jack-server/client.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
Communication error with Jack server (77), try 'jack-diagnose' or see Jack server log
Failed to contact Jack server: Problem reading /home/test/.jack-server/server.pem. Try 'jack-diagnose'
Failed to contact Jack server: Problem reading /home/test/.jack-server/server.pem. Try 'jack-diagnose'
[ 20% 12670/62362] build out/target/product/msm8953_64/obj/kernel/msm-3.18/usr
make: Entering directory '/home/share/test/sc60_android7.1.2_test/kernel/msm-3.18'
make[1]: Entering directory '/home/share/test/sc60_android7.1.2_test/out/target/product/msm8953_64/obj/kernel/msm-3.18'
GEN ./Makefile
HOSTCC scripts/basic/fixdep
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.lex.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
drivers/soc/qcom/Kconfig:368:warning: choice value used outside its choice group
drivers/soc/qcom/Kconfig:373:warning: choice value used outside its choice group
warning: (SND_SOC_APQ8084 && SND_SOC_MSM8994 && SND_SOC_MSM8996 && SND_SOC_MSM8X16 && SND_SOC_MDM9607 && SND_SOC_MDM9640) selects SND_SOC_WCD9330 which has unmet direct dependencies (SOUND && !M68K && !UML && SND && SND_SOC && WCD9330_CODEC)
warning: (SND_SOC_APQ8084 && SND_SOC_MSM8994 && SND_SOC_MSM8996 && SND_SOC_MSM8X16 && SND_SOC_MDM9607 && SND_SOC_MDM9640) selects SND_SOC_WCD9330 which has unmet direct dependencies (SOUND && !M68K && !UML && SND && SND_SOC && WCD9330_CODEC)
*/
5.jack-server的加密与连接问题
尝试:
#找到这段
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
#删掉其中的TLSv1, TLSv1.1 , 改成下面这样即可
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, anon, NULL, \
include jdk.disabled.namedCurves
6.关闭所有的tty登录
分别使用root用户与普通用户进行登录
或者对android的源码进行 7777 权限处理再编译
7.java方面的的修改,我没有使用过
添加java运行参数-Xmx4g
还有一种方法是说修改prebuilts/sdk/tools/jack-admin脚本,修改java运行参数,添加-Xmx4g,其中4g是指内存大小,以自己编译机的实际内存的一半为宜。
修改方法如下:
-JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation}"
+JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g }"
-JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"
+JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4g -cp $LAUNCHER_JAR $LAUNCHER_NAME"
8.jacks-server curl 是否支持https方式或者其它的方式查资料学习确定