Android 源码编译问题总结

  最近把以前淘汰的笔记本刷了个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。模拟器虽然黑屏,不过代码是编译完成了,放一张编译完成的照片。

Android 源码编译问题总结_第1张图片  最后放一个,作为参考的链接地址:https://www.jianshu.com/p/367f0886e62b

你可能感兴趣的:(android,开发语言)