OS X 10.10.5编译Android5.1.1源码
--------------------------------------------------写在前面--------------------------------------------------
由于在编译过程中遇到了很多奇奇怪怪的、难解的问题~~~
到后面,实际上还是在macmini中安装了Ubuntu系统,最后在Ubuntu系统下完成的Android源码编译。
以下就是在OS X系统中进行编译时遇到的一些问题和解决办法,聊作记录。
--------------------------------------------------写在前面--------------------------------------------------
参考:Build Android 5.1.1 on OSX 10.10 Yosemite With Xcode7
一、环境配置
电脑:Mac Mini (OS X 10.10.5)
内存:2 GB 1333 MHz DDR3
XCode:XCode 7.1 beta
二、错误
(1)
select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
解决办法:
sudo xcode-select --switch /Applications/Xcode-beta.app
(2)
build/core/combo/mac_version.mk:: *****************************************************
build/core/combo/mac_version.mk:: * Can not find SDK 10.10 at /Developer/SDKs/MacOSX10..sdk
build/core/combo/mac_version.mk:: *****************************************************
解决办法:在build/core/combo/mac_version.mk文件中将mac_supported_versions 增加10.11
mac_sdk_versions_supported := 10.6 10.7 10.8 10.9 10.10 10.11
(3)
build/core/main.mk:: ************************************************************
build/core/main.mk:: You are building on a case-insensitive filesystem.
build/core/main.mk:: Please move your source tree to a case-sensitive filesystem.
build/core/main.mk:: ************************************************************
build/core/main.mk:: *** Case-insensitive filesystems not supported. Stop.
Android源代码必须在大小写敏感的文件系统下编译,而Mac OS默认不是大小写敏感的,因此需要创建一个大小写敏感的磁盘分区。
解决办法:
使用磁盘工具分出一个格式为(MAC OS 日志式、区分大小写)的分区。
出现“分区无法验证”的错误提示“无法分区”时,重启电脑,在电脑一启动时按下COMMAND+S不动,进入单用户模式,输入fsck -f命令,修复磁盘后,输入reboot重启电脑,再次用磁盘工具进行分区即可。
(4)
host C++: validatekeymaps <= frameworks/base/tools/validatekeymaps/Main.cpp
<built-in>:: error: Unknown value ‘10.11’ of -mmacosx-version-min
In file included from system/core/include/cutils/log.h:,
from system/core/include/utils/KeyedVector.h:,
from frameworks/native/include/input/Input.h:,
from frameworks/native/include/input/KeyCharacterMap.h:,
from frameworks/base/tools/validatekeymaps/Main.cpp::
system/core/include/log/log.h::: error: stdarg.h: No such file or directory
make: *** [out/host/darwin-x86/obj32/EXECUTABLES/validatekeymaps_intermediates/Main.o] Error
解决办法:
在build/core/combo/HOST_darwin-x86.mk里面,增加10.10 10.11的判断:
ifneq ($(filter 10.8 10.9 10.10 10.11, $(mac_sdk_version)),)
# Mac SDK 10.8+ no longer has stdarg.h, etc
host_toolchain_header := $($(combo_2nd_arch_prefix)HOST_TOOLCHAIN_ROOT)/lib/gcc/i686-apple-darwin$(gcc_darwin_version)/4.2./include
$(combo_2nd_arch_prefix)HOST_GLOBAL_CFLAGS += -isystem $(host_toolchain_header)
endif
(5)
<built-in>:: error: Unknown value ‘10.11’ of -mmacosx-version-min
make: *** [out/host/darwin-x86/obj32/EXECUTABLES/validatekeymaps_intermediates/Main.o] Error
解决办法:
下载低版本的XCode(XCode 6.1.1),获取OS X 10.9的SDK.
OS X 10.10.5编译Android5.1.1源码的更多相关文章
- Ubuntu14.04编译Android5.1.1源码
1.Ubuntu环境配置 硬盘:120G 内存:4G 注:配置很重要,直接影响能否编译成功. 2.安装JDK sudo apt-get update sudo apt-get install open ...
- 编译最新版webrtc源码和编译好的整个项目10多个G【分享】
编译最新版webrtc源码和编译好的整个项目10多个G[分享] 参考https://webrtc.org/native-code/development/编译最新版webrtc源码: Git clon ...
- 编译hadoop2.2.0源码时报错
编译hadoop2.2.0源码时, mvn install -DskipTests 报错: [ERROR] COMPILATION ERROR : [INFO] ------------------- ...
- Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决
昨晚在编译源码,make一段时间之后报错如下: # A fatal error has been detected by the Java Runtime Environment: # # SIGSE ...
- 基于Ubuntu 14.04 LTS编译Android4.4.2源码
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/gobitan/article/details/24367439 基于Ubuntu 14.04 LTS ...
- [Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程
本文转载自:[Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程 1 前言 经过3天奋战,终于在Ubuntu 16.04上把Android 6. ...
- Spring源码学习01:IntelliJ IDEA2019.3编译Spring5.3.x源码
目录 Spring源码学习01:IntelliJ IDEA2019.3编译Spring5.3.x源码 前言 工欲善其事必先利其器.学习和深读Spring源码一个重要的前提:编译源码到我们的本地环境.这 ...
- Spring源码解析 | 第一篇 :IntelliJ IDEA2019.3编译Spring5.3.x源码
前言 工欲善其事必先利其器.学习和深读Spring源码一个重要的前提:编译源码到我们的本地环境.这样方便我们在本地环境添加注释.断点追踪.查看类或接口的继承关系等等,更加高效的学习Spring源码.个 ...
- [实践] Android5.1.1源码 - 在Framework中添加自定义系统服务
前言 本文的方法要修改Android源码.但只要将系统服务写出来,也可以注入system_server进程将系统服务加载到system_server中. 步骤 1. 添加一个aidl文件,我将aidl ...
随机推荐
- POJ 1236 Network of Schools(强连通分量/Tarjan缩点)
传送门 Description A number of schools are connected to a computer network. Agreements have been develo ...
- 云计算之KVM简介(一)
云计算之KVM简介(一) 因为很多人会将云计算和虚拟化弄混,我下面为大家介绍一下 云计算指的是资源使用和交互的一种模式 虚拟化指的是技术,可以将物理计算机虚拟成多个逻辑计算机(VMware) 他俩是 ...
- 如何让vim编辑器永久显示行号
在Linux环境下的编辑器有vi.vim.gedit等等.进入这些编辑器之后,为了方便我们需要编辑器显示出当前的行号,可偏偏编辑器默认是不会显示行号的.我们有二种办法可以解决: 第一种是,手动显示:在 ...
- maven工程直接部署在tomcat上
http://www.cnblogs.com/guodefu909/p/4874549.html (现在用的是第三点.)
- select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
http://hi.baidu.com/%B1%D5%C4%BF%B3%C9%B7%F0/blog/item/e7284ef16bcec3c70a46e05e.html select函数用于在非阻塞中 ...
- JavaWeb学习笔记——Tomcat数据源
server.xml配置数据帐号和密码等
- 《深入理解bootstrap》读书笔记:第二章 整体架构
一. 整体架构 1. CSS-12栅格系统 把网页宽度均分为12等分(保留15位精度)--这是bootstrap的核心功能. 2.基础布局组件 包括排版.按钮.表格.布局.表单等等. 3.jQu ...
- 其他系统与ecshop的会员整合
步骤一:整合两个的会员数据 用软件Navicat 的 "导入向导"功能,导入你的原数据类型(sql,mdb,db)我的是mdb类型.下一步选择你原有的会员字段“user”.再进行下 ...
- Winform添加Label
Info from : http://www.csharpwin.com/csharpspace/6253r7952.shtml 本例子主要是介绍如何在 C#开发WinForm中加入一个组件,如果你想 ...
- 二叉排序树(Binary Sort Tree)
参考文章:http://blog.csdn.net/ns_code/article/details/19823463 不过博主的使用第一种方法操作后的树已经不是二叉排序树了,值得深思!! #inclu ...