Ubuntu18.04 编译Android 8.1 源码出现的问题及解决笔记
经过不断的尝试并经过一晚上的编译终于在ubuntu18.04的虚拟机内编译成功Android 8.1,下面我列举以下在编译项目是遇到的问题及解决办法
错误一
unable to open output file 'out/soong/.intermediates/frameworks/av/media/libstagefright/codecs/m4v_h263/dec/libstagefright_m4vh263dec/android_arm_armv7-a-neon_cortex-a7_static_core/obj/frameworks/av/media/libstagefright/codecs/m4v_h263/dec/src/vop.o': 'Permission denied'
1 error generated.
[ 0% 4/58014] Ensuring Jack server is installed and started
Jack server already installed in "/home/siyujie/.jack-server"
Launching Jack server java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=/tmp -Dfile.encoding=UTF-8 -XX:+TieredCompilation -cp /home/siyujie/.jack-server/launcher.jar com.android.jack.launcher.ServerLauncher
ninja: build stopped: subcommand failed.
06:23:37 ninja failed with: exit status 1
从关键信息中我们看到 “Permission denied ”,操作文件权限失败
解决方案:
执行 su 命令切换到 ROOT 用户下面重新进行编译。
错误二
Aborted (core dumped)
[ 5% 3239/63193] target StaticLib: li...IES/libv8src_intermediates/libv8src.a)
ninja: build stopped: subcommand failed.
14:04:56 ninja failed with: exit status 1
build/core/main.mk:21: recipe for target 'run_soong_ui' failed
make: *** [run_soong_ui] Error 1
解决方案:
在make之前调用 export LC_ALL=C
错误三
Communication error with Jack server (52). Try 'jack-diagnose'
ninja: build stopped: subcommand failed.
解决方案:
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
./out/host/linux-x86/bin/jack-admin kill-server
./out/host/linux-x86/bin/jack-admin start-server
错误四
该错误没有记录下来错误的日志,暂时先记录解决的办法,下次遇到错误日志再补充完整
解决方案:
sudo apt-get install clang"
sudo apt-get install cmake
编译步骤:
- 进入Android源码目录
cd
- 执行sh命令
source ./build/envsetup.sh
- 执行lunch命令查看支持编译列表
lunch
- 根据列表选择想要编译的选项编码;
- 输入完成后执行make命令进行编译
make -j4
- 等待编译完成。
扩展交换分区
1. dd if=/dev/zero of=swapfile bs=1M count=10240
2. mkswap swapfile
3 . swapon swapfile
编译前环境配置
apt update
git config --global user.email “***@email.com”
git config --global user.name “***”
apt install bison tree
dpkg --add-architecture i386
apt update
apt install libc6:i386 libncurses5:i386 libstdc++6:i386
apt install libxml2-utils
apt install openjdk-8-jdk