设为首页 加入收藏

TOP

Android8.1源码编译实践(Mac)(二)
2019-08-24 00:10:53 】 浏览:59
Tags:Android8.1 源码 编译 实践 Mac
st.go

查看darwinSupportedSdkVersions,这里列出了支持的sdk版本:

darwinSupportedSdkVersions = []string{
    "10.10",
    "10.11",
    "10.12",
    }

接着我们进入以下目录查看现有的XcodeSDK版本:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/

这里我们选择10.11的版本,如果没有MacOSX10.11.sdk则去MacOSX-SDKs 中下载一个,解压到该目录,并把其他版本的删除,确保只保留一个就行了。

开始编译

首先要把shell切换到bash(如果你使用的是zsh)

#chsh -s /bin/bash

初始化环境:

#source build/envsetup.sh

选择编译的分支:

#lunch

会出现以下列表:

Lunch menu... pick a combo:

 1. aosp_arm-eng
 2. aosp_arm64-eng
 3. aosp_mips-eng
 4. aosp_mips64-eng
 5. aosp_x86-eng
 6. aosp_x86_64-eng
 7. aosp_car_arm-userdebug
 8. aosp_car_arm64-userdebug
 9. aosp_car_x86-userdebug
 10. aosp_car_x86_64-userdebug
 ... ... 

Which would you like? [aosp_arm-eng]

要求输入对应的数字:
如果你想在你的Nexus上设备运行,请参照官方设备对应列表选择;
如果你只想在本机的虚拟机上运行,Mac系统的话选择aosp_x86-eng即可。

最后一步,编译:

#make -j6

通过-jN参数来设置编译的并行任务数,以提高编译速度,在此前我的CPU核心数为6,这里N值最好选在6到12之间,这里我们设置6个并行任务进行编译。

这里需要注意的是,每次退出再进入命令行要执行以上命令之前,都要先执行:

#source build/envsetup.sh

编译中遇到的问题

问题1:Jack编译报错:communication error with Jack server

原因:JACK编译器不支持多用户同时编译,其他用户在编译,端口被占用。

解决方法:
如下:修改以下两个配置文件中的端口号server.service.port和server.admin.port,比如都改为8096/8097:

  1. ~/.jack-settings
  2. ~/.jack-server/config.properties

注意:
两个文件中的端口号必须一致。
修改后的端口号必须是没有被使用的。

问题2: 出现Try increasing heap size with java option '-Xmx'

原因: 出现这个错误是由于电脑内存不足;
解决方法:在命令行分别执行以下三条语句,然后继续编译;

# export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g" 
# ./prebuilts/sdk/tools/jack-admin kill-server 
# ./prebuilts/sdk/tools/jack-admin start-server

问题3: BISON_PKGDATADIR=external/bison/data prebuilts/misc/darwin-x86/bison/bison -d

在log中出现BSION等字样;

原因:网上说这个bsion的一个bug;
解决方法:拉取新的分支,重新编译 bison:

#cd external/bison
#git cherry-pick c0c852bd6fe462b148475476d9124fd740eba160

如果这步骤发生错误了(比如之前删除了.repo文件夹)
这时候我们就把bison这个文件夹删除,下载一个新的:

wget https://android.googlesource.com/platform/external/bison/+archive/c0c852bd6fe462b148475476d9124fd740eba160.tar.gz

解压后进入bison文件夹,执行:

# mm
# cp out/host/darwin-x86/bin/bison prebuilts/misc/darwin-x86/bison/

结束

最后一切顺利的话,经过漫长的编译后,最终会出现以下画面则说明编译Android系统成功了。
Xnip2019-05-18_22-22-31

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Android 开发你需要了解的那些事 下一篇flutter 如何实现文件读写(使用篇)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目