最近把以前淘汰的笔记本刷了个Ubuntu系统,在这上面编译了android-8.0.0_r17的源代码(https://android.googlesource.com/platform/manifest -b android-8.0.0_r17),将相关问题记录下来。
配置:内存:3G,CPU:两核,主频:2.0GHz。配置低。
由于内存太小,所以交换区设置大一些,参考 https://blog.csdn.net/qui910/article/details/123496568 。
source build/envsetup.sh
lunch
出来选择combo,选择 aosp_arm-eng的序号
make
emulator
1、 Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))’ failed . Aborted?
解决:export LC_ALL=C,然后接着make
2、 Try increasing heap size with java option ‘-Xmx’?
解决:export JACK_SERVER_VM_ARGUMENTS=“-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx3g”
./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server
然后接着make
3、 FAILED: out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex
有次电脑就卡到这里了,进度一直不变化。
解决:重新更改swap区大小,之后接着make
4、 FAILED: out/soong/build.ninja
out/soong/.bootstrap/bin/soong_build -t -b out/soong -d out/soong/build.ninja.d -o out/soong/build.ninja Android.bp
Killed
解决:发现swap竟然停用了,重新开启,接着make
5、 有时侯发现进度就一直卡住不动
Ctrl+c,中断编译。kill -9 Java进程(因为这个时候,笔记本基本处于特别卡的状态,top检查,发现Java进程占据了大量内存)。然后检查swap是否正常开启,在检查Jack服务是否开启,如果没开启,都开启之后,再重新make。卡住之前,用命令make -j2。这个时候,可以试试make -j1。估计电脑配置太低的缘故。
6、 This application failed to start because it could not find or load the Qt platform plugin “xcb”
in “”
解决:export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins
然后source /etc/profile一下
7、 gles2_dispatch_init: Could not load lib64GLES_V2_translator [lib64GLES_V2_translator.so: cannot open shared object file: No such file or directory]
解决:export LD_LIBRARY_PATH=./prebuilts/android-emulator/linux-x86_64/lib64
8、 libGL error: MESA-LOADER: failed to open r600 (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri)
libGL error: failed to load driver: r600
libGL error: MESA-LOADER: failed to open r600 (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri)
libGL error: failed to load driver: r600
libGL error: MESA-LOADER: failed to open swrast (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri)
libGL error: failed to load driver: swrast
解决:emulator -use-system-libs
9、 启动模拟器黑屏
未解决,刚开始编译的是aosp_x86_64-eng,编译成功之后,运行模拟器提示,需要虚拟技术,进入BIOS,发现不支持.
重新编译aosp_arm64-eng,编译成功之后,运行模拟器还是黑屏.大概记得之前在虚拟机上,编译的也是黑屏,后面换成aosp_arm-eng,就可以启动了.
最后,重新编译aosp_arm-eng, 编译完成之后,还是黑屏.
查了一番资料,也都试了一遍,都不行,包括更换kernel-qemu-armv7的也不行.这个问题,可能需要换电脑了.
查了一下,编译aosp_arm-eng完成之后,文件夹所占空间总共115G。out文件夹占44G,所以下载下来的源代码应该是71G。模拟器虽然黑屏,不过代码是编译完成了,放一张编译完成的照片。