Ubuntu18.04 编译Android 8.1 源码出现的问题及解决笔记

Ubuntu18.04 编译Android 8.1 源码出现的问题及解决笔记

  • 经过不断的尝试并经过一晚上的编译终于在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

错误三

ninja: build stopped: subcommand failed.

解决方案:

  1. export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
  2. out/host/linux-x86/bin/jack-admin kill-server
  3. out/host/linux-x86/bin/jack-admin start-serve

错误四

该错误没有记录下来错误的日志,暂时先记录解决的办法,下次遇到错误日志再补充完整
解决方案:

  1. sudo apt-get install clang"
  2. sudo apt-get install cmake

编译步骤:

  1. 进入Android源码目录 cd android/source
  2. 执行sh命令 source ./build/envsetup.sh
  3. 执行lunch命令查看支持编译列表 lunch
  4. 根据列表选择想要编译的选项编码;
  5. 输入完成后执行make命令进行编译 make -j4
  6. 等待编译完成。

以上编译步骤是在我的环境内操作的步骤,请大家根据自己的配置环境进行相应的变通。

你可能感兴趣的:(Android)