1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > android 6.0编译环境 MacOS下编译Android6.0源代码

android 6.0编译环境 MacOS下编译Android6.0源代码

时间:2020-07-18 13:19:27

相关推荐

android 6.0编译环境 MacOS下编译Android6.0源代码

编译Android系统,只能在OS X环境下或者是Linux环境下,这篇文章,也是买Mac不久后写的,当时想顺便测试一下电脑的性能,编译Android系统要多久。整理笔记的时候发现,也就顺便发布出来。

通过App store可以安装xcode

下载安装Xcode Command Line Tools,如果之前安装过,输入该命令的时候,提示已经安装

➜~xcode-select--installxcode-select:error:commandlinetoolsarealreadyinstalled,use"SoftwareUpdate"toinstallupdates看了几篇教程,很多人都说要下载安装MacPorts,然后通过MacPorts下载git等,其与Homebrew类似,对比后觉得Homebrew更好,推荐使用后者。整个流程下来,发现没有安装也没啥问题,同样可以顺利完成。

镜像命名为Android,镜像的大小分了100G

➜~hdiutilcreate-typeSPARSE-fs'Case-sensitiveJournaledHFS+'-size100g~/Android.dmgcreated:/Users/guidongyuan/Android.dmg.sparseimage创建后,仍旧可以更改镜像的大小,命令如下

➜~hdiutilresize-sizeg~/Android.dmg.sparseimage挂载镜像文件➜~hdiutilattach~/Android.dmg.sparseimage-mountpoint/Volumes/android/dev/disk4GUID_partition_scheme/dev/disk4s1EFI/dev/disk4s2Apple_HFS/Volumes/android挂载后,如果想卸载,命令如下

➜~hdiutildetach/Volumes/android"disk4"unmounted."disk4"ejected.解除最大文件数Mac系统下默认只能同时打开1024个文件,编译的时候有可能突破这个数目,因此需要解除限制。如果是使用on_my_zsh,在这里,需要进行切换为默认的bash,不然执行到后面的时候,也会出现错误。打开bash的配置文件.bash_profile,如果没有的话,会默认新建该文件。

~vim~/.bash_profile~source.bash_profile在文件中添加下面的内容

#ulimitthenumberofopenfilestobe1024ulimit-S-n1024下载源代码下载方式有很多种,由于网络比较慢,就选择了最后一种,最简单的方式:

直接通过官方下载

通过国内镜像下载

下载网友打包好的单独源码文件(有网友把所有各个版本都上传到百度云 )

通过方式3下载后,拷贝到前面创建好的分区,/Volumes/android,进行解压

进去解压后的文件路径/Volumes/Android_source/android-6.0.1_r1

➜android-6.0.1_r1sourcebuild/envsetup.sh开始编译➜android-6.0.1_r1make-j4整个过程需要一个多小时,编译过程会出现一些错误导致停止,都逐一记录在下面

上面编译源码后,想导入到Android Studio进行阅读,需要编译idegen生成idegen.jar和生成Android Studio导入所需的.ipr/.iml文件

$sourcebuild/envsetup.sh$mmmdevelopment/tools/idegen/一开始只是运行上面命令中的第二条mmm语句,提示找不到mmm,网上查了一下,说是需要安装Xcode Command Line Tools,已经安装了,而且还可以执行make命令,为啥在这里就提示找不到呢?后来才知道需要重新执行上面命令的第一条语句再执行。

$sh./development/tools/idegen/idegen.sh导入到Android Studio进行阅读打开Android Studio,file-->open,找到Android.ipr。

导入的时候,会提示case-sensitive(大小写敏感)

解决办法: 在/Applications/Android\ Studio.app/Contents/bin/idea.properties文件中添加一行:

idea.case.sensitive.fs=true重新启动应用,终于可以在Android Studio看代码了

➜android-6.0.1_r1sourcebuild/envsetup.shbuild/envsetup.sh:573:commandnotfound:completeWARNING:Onlybashissupported,useofothershellwouldleadtoerroneousresults解决办法:修改完成后,需要重启终端

➜android-6.0.1_r1chsh-s/bin/bashSDK版本错误出现该错误是因为Xcode中/Developer/SDKs的版本在build/core/combo/mac_version.mk文件中没有收录

CannotfindSDK10.6at/Developer/SDKs/MacOSX10.6.sdk解决办法:

查看Xcode中/Developer/SDKs的版本,在该路径下/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs就可以查看当前系统的SDK版本,查看我的是10.12

一开始按照网上的解决办法,是直接在build/core/combo/mac_version.mk添加自己系统SDKs的版本号,但是修改后,继续运行的时候,还有下面这个错误出现,提示使用10.12版本出错,看来通过修改为最新版本还是不能解决问题

system/core/libcutils/threads.c:38:10:error:'syscall'isdeprecated:firstdeprecatedinOSX10.12-syscall(2)isunsupported;pleaseswitchtoasupportedinterface.ForSYS_kdebug_traceusekdebug_signpost().[-Werror,-Wdeprecated-declarations]returnsyscall(SYS_thread_selfid);^hostC:libcutils<=system/core/libcutils/iosched_policy.c/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/unistd.h:733:6:note:'syscall'hasbeenexplicitlymarkeddeprecatedhereintsyscall(int,...); a. 重新下载MacOSX10.11.sdk -SDKs,下载完成后进行解压,放到/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs中

b. 修改mac_version.mk

➜android-6.0.1_r1vimbuild/core/combo/mac_version.mk找到mac_sdk_versions_supported := 10.6 10.7 10.8 10.9 修改为mac_sdk_versions_supported := 10.6 10.7 10.8 10.9 10.11

Android 6.0编译的时候,不能使用1.8版本,修改切换到1.7版本

Yourversionis:javaversion"1.8.0_112"Java(TM)SERuntimeEnvironment(build1.8.0_112-b16)JavaHotSpot(TM)64-BitServerVM(build25.112-b16,mixedmode).Therequiredversionis:"1.7.x”解决办法:

下载并安装jdk-7u71-macosx-x64.dmg -archive-downloads-javase7-.html#jdk-7u71-oth-JPR

修改默认jdk的路径

Goddards-MBP:~guidongyuan$vim./.bash_profile修改为使用1.7版本

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。