记录使用ubuntu16.04编译aosp(android8.1与10)遇到的问题

发布于:2025-07-11 ⋅ 阅读:(16) ⋅ 点赞:(0)

一、前言:

本来打算用wsl来编译AOSP,但是折腾了好几天,以失败告终。后来使用vmware反而成功了。

本篇同样会把wsl遇到的问题与尝试记录下来。

环境:vmware ubuntu16.04。

为什么会使用ubuntu16.04呢,因为在公司有一个项目是android8.1的,推荐使用ubuntu14.04编译,ubuntu12与16也可以。如果能通过wsl完成编译,结合共用的文件系统,那就是王炸。由于现在的win10找不到ubuntu16以前的版本,而且ubuntu18不提供openjdk-8-jdk的apt安装,要到ubuntu20才有,考虑到版本相差太多,有很多配置需要改,为了减少折腾,使用ubuntu16。使用文件appx安装。

关键词:

jack-server,

===============================分割线=====================================

======================使用vmware ubuntu16编译成功===========================

===============================分割线=====================================

二、vmware ubuntu16方案

1、先安装依赖:

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip libssl-dev  openjdk-8-jdk -y

2、repo同步仓库,python要用python3.6及以上,编译时再切换回到python2.7。

  1. wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz

  2. tar -xvf Python-3.6.8.tar.xz

  3. ./configure --enable-optimizations --prefix=/usr/local/python3

  4. sudo make

  5. sudo make install

  6. ln -s /usr/local/python3/bin/python3 /usr/bin/python3

  7. ln -s /usr/bin/python3 /usr/bin/python

3、jack-server启动失败

为什么jack-server启动失败,因为和jdk8版本有关:
https://segmentfault.com/a/1190000039970343

原因就是编译时用的是open-jdk 8u292,默认禁用了TLSv1, TLSv1.1,
从/etc/java-8-openjdk/security/java.security中取消TLSv1, TLSv1.1 禁用,
 

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

(修改后,重启,编译通过,立杆见影)

如果出现subcommand未找到,就重新make编译,多来几次就能成功。

4、手动开启与关闭jack-server(一般不需要用,这里记录下)

./prebuilts/sdk/tools/jack-admin kill-server

./prebuilts/sdk/tools/jack-admin start-server

5、内存不足

由于最开始用8G内存,在最后编译1512个文件时总是说jvm虚拟机内存不足,最后改为10G,编译通过。

===============================分割线=====================================

=========================使用wsl ubuntu16编译失败============================

===============================分割线=====================================

三、wsl方案(不要用,目前没解决)

使用wsl种会遇到莫名奇妙的问题,wsl既要升级为wsl2,又要在win10上开始大小写敏感。

ubuntu16 appx安装包:

打开power shell,并输入:

Add-AppxPackage e://Ubuntu_1604.2019.523.0_x64.appx

安装包百度网盘链接:

Ubuntu_1604.2019.523.0_x64.appx

安装好后,从左下角win图标的最近安装中找到。

升级wsl2配置:

1、控制面板开启功能

2、将以下内容复制到.bat文件中,并以管理员权限执行:
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
3、安装缺少组件:

wsl_update_x64.msi

4、查看wsl版本并升级

wsl -l -v

wsl --set-version Ubuntu-16.04 2
 

开启win10下文件夹的大小写敏感

1、查看是否开启

fsutil.exe file queryCaseSensitiveInfo e:/Project/w377/code_w403_main

2、设置为开启


用管理员权限打开cmd,并运行:
fsutil file setCaseSensitiveInfo e:/Project/w377/code_w403_main enable

注意,如果文件夹内有内容,不对子文件夹产生影响。如果开启后,对该文件夹操作,如创建、复制新文件夹,则会继承大小写敏感


网站公告

今日签到

点亮在社区的每一天
去签到