Mac 10.10 下载、编译android4.4过程及注意事项
2015-11-13 14:20
489 查看
注:本次过程是在翻墙的情况下实现的。
参考https://source.android.com/source/initializing.html文档步骤执行:
1、创建磁盘镜像80g(在该镜像里下载、编译android源码)
2、安装jdk(jdk6用于编译,jdk7用于下载)
3、安装Xcode最好是4以下,如果安装的XCode为5以上,则在编译时,需要修改几处文件。
4、安装MacPorts。
5、使用MacPorts安装make, git, and GPG。
6、如果make的版本是3.8.2,需要降级到3.8.1。
7、修改文件标识符限制。
8、配置缓存,(用于加速编译)。
9、安装repo。
10、初始化android版本下载manifest
11、下载。
12、编译。
下面说下在这里面遇到的问题及解决方法:
1、初始化android版本下载manifest后,在.repo文件夹下面的manifest.xml文件中,fetch=".."修改为fetch="https://android.googlesource.com/" 。否则无法下载源码。
2、下载源码时,由于网络原因,经常后掉线,导致停止下载。每次repo sync很麻烦,可以生成一个.sh文件,自动处理这个情况。
#!/bin/bash
PATH=~/bin:$PATH
repo sync
while [ $? = 1 ]; do
echo "================sync failed, re-sync again ====="
sleep 3
repo sync
done
注意:**
为SDL打源码补丁,为什么g神们就没打上补丁呢,只好我们自己来修改源码,参考补丁地址是http://hg.libsdl.org/SDL/changeset/bbfb41c13a87,在源码目录找到并打开文件./external/qemu/distrib/sdl-1.2.15/src/video/quartz/SDL_QuartzVideo.h,找到CGDirectPaletteRef
palette所在行数,前后加入判断,如下:
3、Xcode版本问题。(Xcode5以下版本无视下面)
修改方法为:
[code]system = platform.system()
if system == 'Darwin':
cpp_args = ['cpp']
else:
cpp_args = ['cpp', '-fpreprocessed']
p = subprocess.Popen(args=cpp_args,
3)
[/code]
参考https://source.android.com/source/initializing.html文档步骤执行:
1、创建磁盘镜像80g(在该镜像里下载、编译android源码)
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/android.dmg
2、安装jdk(jdk6用于编译,jdk7用于下载)
3、安装Xcode最好是4以下,如果安装的XCode为5以上,则在编译时,需要修改几处文件。
4、安装MacPorts。
5、使用MacPorts安装make, git, and GPG。
6、如果make的版本是3.8.2,需要降级到3.8.1。
7、修改文件标识符限制。
8、配置缓存,(用于加速编译)。
9、安装repo。
10、初始化android版本下载manifest
11、下载。
12、编译。
下面说下在这里面遇到的问题及解决方法:
1、初始化android版本下载manifest后,在.repo文件夹下面的manifest.xml文件中,fetch=".."修改为fetch="https://android.googlesource.com/" 。否则无法下载源码。
2、下载源码时,由于网络原因,经常后掉线,导致停止下载。每次repo sync很麻烦,可以生成一个.sh文件,自动处理这个情况。
#!/bin/bash
PATH=~/bin:$PATH
repo sync
while [ $? = 1 ]; do
echo "================sync failed, re-sync again ====="
sleep 3
repo sync
done
注意:**
为SDL打源码补丁,为什么g神们就没打上补丁呢,只好我们自己来修改源码,参考补丁地址是http://hg.libsdl.org/SDL/changeset/bbfb41c13a87,在源码目录找到并打开文件./external/qemu/distrib/sdl-1.2.15/src/video/quartz/SDL_QuartzVideo.h,找到CGDirectPaletteRef
palette所在行数,前后加入判断,如下:
#if (MAC_OS_X_VERSION_MIN_REQUIRED < 1070) CGDirectPaletteRef palette; /* palette of an 8-bit display */ #endif
3、Xcode版本问题。(Xcode5以下版本无视下面)
1) Can not find SDK 10.6 at /Developer/SDKs/MacOSX10.6.sdk
修改方法为:
//前提是你在WORKING_DIRECTORY目录下 $ vi build/core/combo/HOST_darwin-x86.mk //找到mac_sdk_versions_supported mac_sdk_versions_supported := 10.6 10.7 10.8 //将上面这行换成 mac_sdk_versions_supported := 10.9 10.10 //就是换一下支持的sdk版本号。 2)external/chromium_org/base/android/jni_generator/jni_generator.py p = subprocess.Popen(args=['cpp', '-fpreprocessed'], 修改为:
if system == 'Darwin':
cpp_args = ['cpp']
else:
cpp_args = ['cpp', '-fpreprocessed']
p = subprocess.Popen(args=cpp_args,
3)
build/core/combo/HOST_darwin-x86.mk
ifeq ($(mac_sdk_version),10.8)修改为
ifeq ($(mac_sdk_version),10.9)
[/code]
相关文章推荐
- 【转帖】安装Intel HAXM为Android 模拟器加速,30秒内启动完成
- 安卓开发之组件
- Android中BroadcastReceiver广播使用及注意点
- Android提供的LruCache类简介
- android 5.0 以上版本 c++调用java 崩溃问题
- Android--TextView属性大全
- Android浏览器应用搜索输入框被输入法遮挡问题
- 深入解析AsyncTask
- Android获取缓存大小和清除缓存功能
- android 通知NotificationManager
- android 获得一个应用程序的启动次数,运行时间等信息
- Android中采用XmlPullParser解析xml文件异常的问题
- 匿名内部类易错点
- 移动应用 Bug 快速反馈神器
- Android Context完全解析,你所不知道的Context的各种细节
- Android-服务(Service)初体验-1
- android json解析及简单例子
- android 小谈activity的四种启动模式
- 安卓基于位置的服务学习整理
- 安卓广播学习整理