参考:
https://www.cnblogs.com/zzb-Dream-90Time/p/9273844.html
这个解决方法是比较全的,但是我所有 *** 作都做了,依然无法正常编译
解决这个问题花了我2天时间,尝试了很多次才解决,包括选择不同的lunch版本,因为在之前编译android9.0的时候,其他lunch也会出现各种问题,但是编译x86 64的时候是直接能一次性编译通过的。
因为刚开始多线程(多进程?)编译的时候,不会立马出现这个问题,而是会编译过程中,我大概会2000-3000个文件之后,出现这个问题造成编译失败。所以我开始以为是权限问题,因为我改了所有文件的权限是777,umake为000,但是out还是会生成其他权限的文件,所以我写了个python脚本,让它出问题自动重新make。
在编译文件夹下vim makej12.py
import os import time a = 0 while(True): a = a+1 time.sleep(1) os.system("sudo chmod 777 * -R /data0/aosp8.0/out | make -j12") print (a)
执行python3 makej12.py
等待几个小时,最后1300个多个文件的时候怎么也走不下去了,每次都会出现Ensuring Jack server is installed and started
首先先照着最上面的文章执行
1、改端口号(因为我不是在服务器上编译,估计改对我也没什么用), 虽然执行显示端口被占用,其实好像是因为他在启动服务的时候多次失败重启造成的。反正最好也改一下
2、设置$HOME/.jack-server/config.properties权限,我改为777,也没什么用。虽然log一直显示的是需要rw权限,实际改了之后也会显示这个。
3、prebuilts/sdk/tools$ jack-admin start-server,与这条命令相关的还有各种kill,restart什么的,反正最终结果都卡住
4、从/etc/java-8-openjdk/security/java.security中取消TLSv1, TLSv1.1 禁用。即vim /etc/java-8-openjdk/security/java.security找到TLSv1, TLSv1.1,删掉,全文只有一个TLSv1, TLSv1.1。以及重点关闭终端重新打开让其生效。我照做了也是无效,可能有一些人在这一布就能成功编译了
5、在运行编译命令时加入 make -j8 ANDROID_COMPILE_WITH_JACK=false 来关闭jack 服务,结果是直接失败,但是是其他错误。
解决办法,因为只有5和其他的不同,所以我解决了5的问题,具体出错忘了是什么了,我的解决办法是删掉所有javajdk,重装openjdk-8-jre-headless。即apt install openjdk-8-jre-headless,我是在root权限下。重装jdk之后可以执行make -j8 ANDROID_COMPILE_WITH_JACK=false成功编译
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)