osx 10.10.1编译 Android 4.4.4_r2
来源:互联网 发布:加强网络安全管理通知 编辑:程序博客网 时间:2024/06/03 08:20
一、下载android 4.4.4_r2源码
1、创建目录:cd ~ && mkdir bin src
2、切换到bin 目录,按官方教程初始化好repo文件
3、设置检出android源码相关的host ip地址为nslookup g.cn查询出来的IP地址;本次编译使用的host ip地址(加入到hosts列表)
203.208.46.148 googlesource.com203.208.46.148 www.googlesource.com203.208.46.148 android.googlesource.com64.233.168.87 chromium.googlesource.com64.233.168.87 gerrit.googlesource.com64.233.168.87 kernel.googlesource.com
4、在src目录执行../bin/repo sync,等下载好源码,现在是android 5.0发布之后,源码下载完后有70G+,里面有个git的索引目录.repo有60G+之大
二、编译android 4.4.4_r2源码
1、修改系统框架源码,需要修改头文件如下
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/QTKit.framework/Headers/QTMovieModernizer.h
:156:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/QTKit.framework/Headers/QTMovieModernizer.h
:163:
编译qemu时候报错:error: expected a property attribute before ‘atomic’网上搜索得出结论是新版xcode编译默认了objc的property都是atomic的,所以不能定义 property attribute 为 atomic,都说要装xcode5.x来编译。没那闲工夫,直接注释QTMovieModernizer.h:156, 163两行的atomic关键字,改后可以xcdoe 6.1.1正常编译过去。
2、修改android源码编译脚本,使其支持10.10系统下编译。直接修改文件
//相关修复方法从此博主小球球处得知,安装编译环境什么都都是学习博主小球球的,感谢。vi build/core/combo/HOST_darwin-x86.mk//找到找到mac_sdk_versions_supportedmac_sdk_versions_supported := 10.6 10.7 10.8 改成 mac_sdk_versions_supported := 10.9 10.10修改external/chromium_org/base/android/jni_generator/jni_generator.py,按博主提示得到补丁修改,补丁片段就是检查系统版本,决定子进程启动参数是否带-fpreprocessed
修改build/core/combo/HOST_darwin-x86.mk
ifeq ($(mac_sdk_version),10.8) // 10.8改成我们的sdk版本10.9# Mac SDK 10.8 no longer has stdarg.h, etc据说到这里博主小球球就可以愉快的编译下去了,可惜我不能。还需处理几个步骤处理一下。
3、移除NDK_ROOT环境变量,在开始编译支持需要unset NDK_ROOT, 否则编译出现webrtc神马的错误。如果你没装NDK,没设置NDK_ROOT环境变量忽略之。
4、为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
5、至此我们就真的可以愉快的编译下去了,我使用的的是远程mac机器来编译,所以在ssh 到远程mac后切换到android src目录后执行
source build/envsteup.sh //导入一下环境变量lunch 1 //估计生成arm-eng的编译配置吧nohup make -j4 > ~/android-build.log 2>&1 & //很奇怪的是,需要重新登录ssh,才能顺利编译,在本地表现为需要重新打开新窗口,否则出现是奇怪分隔符错误。
至此,我们的make就在后台使用4线程去编译了,2小时完成生成了20G的out目录。
三、启动虚拟机,运行编译好的镜像
1、在src目录下设置好ANDROID_PRODUCT_OUT环境变量,否则启动虚拟机无反应就是ANDROID_PRODUCT_OUT的问题,会不会就是. ./build/envsetup.sh的bug呢?
export ANDROID_PRODUCT_OUT=$(pwd)/out/target/product/generic/
export ANDROID_HOST_OUT=$(pwd)/out/host/darwin-x86/
2、执行环境变量初始化脚本
source ./build/envsetup.sh
lunch 1
3、启动虚拟机
emulator -verbose #-verbose主要看虚拟机器的输出日志,方便问题排查
0 0
- osx 10.10.1编译 Android 4.4.4_r2
- 尝试编译android-4.0.4_r2.1
- Ubuntu 12.04 LTS server 编译 android-4.0.4_r2.1遇到的问题和解决方法
- Ubuntu9.10编译android-2.1_r2源码
- Ubuntu9.10编译android-2.1_r2源码
- android-2.1_r2编译出错记录
- Ubuntu 10.04环境下载&编译Android-2.1_r2源代码
- Ubuntu 10.04环境下载&编译Android-2.1_r2源代码
- 最新 android 源代码下载 android-4.4.4_r2.0.1和android-5.1.0_r3
- Ubuntu 10.04环境下载&编译Android-2.1_r2源代码【20110527更新说明】
- Ubuntu 10.04环境下载&编译Android-2.1_r2源代码【20110527更新说明】
- Ubuntu 10.04环境下载&编译Android-2.1_r2源代码【20110527更新说明】
- Android源码(4.3_r2)下载,Done!
- MAC OSX 10.10 Yosemite 下编译 OP_TEE
- Mac OSX 10.10 Yosemite编译OpenJDK 8
- Mac OSX下编译 Hadoop 2.6.4
- 下载、编译Android5.1.0_r2源码简明版
- Build Android 5.1.1 on OSX 10.10 Yosemite With Xcode7
- Codeforces Round #287 (Div. 2) E. Breaking Good
- get/post发送HTTP请求2
- Java并发——线程池原理
- python的nltk中文使用和学习资料汇总帮你入门提高
- MyEclipse代码提示快捷键和常用设置
- osx 10.10.1编译 Android 4.4.4_r2
- 黑马程序员Android第55期—— XML 实例二
- c语言中的指针总结
- 将bmp图像转换为CCS可以识读的dat文件,Matlab实现
- Gradle初体验
- endnote中设置参考文献格式的几篇blog
- 【算法】JAVA快速排序法实现
- Android SDK的目录结构及功能
- 自动恒温灌溉组态软件