android源码分析-aapt,Android 源码编译aapt 中 clang error: no input files 等错误解决方法...

最近在修改编译安卓源码中aapt工具,在编译过程中编译各个平台的执行文件遇到各种问题各种坑,真的是踏着坑一步一步走过来的。下面把遇到的坑的解决方法分享出来,算作一个记录吧。

1、编译环境

2)虚拟机的ubuntu14.04-64bit

2)虚拟机的MAC  X os 10.10-64bit

2、ubuntu编译遇到的问题

1)开始的时候在移动硬盘上进行编译,结果提示各种文件没有执行权限,使用手动挂载移动硬盘为rw也不能解决(现在看来其实根本原因是移动硬盘的NTFS分区对大小写不敏感导致源码解压后不完整)

2)尝试移动硬盘编译无果后,挂载了一块虚拟硬盘用于编译,这次使用过zip源码文件解压到虚拟硬盘,最终成功编译

总结:编译过程可以按照http://source.android.com/source/initializing.html设置即可比较简单,编译过程中需要下载或者解压源码到linux格式的硬盘分区上才能正常编译(注:windows版本的aapt也需要在ubuntu上打出)

3、mac编译遇到的问题

1)开始时在虚拟机上安装了各种环境,包括卡的要死的mac系统,完整版本的xcode包,在硬盘创建大小写敏感的分区等等操作,都完成后编译源码一直报 clang error:no input files 错误

2)在google 了N久没有找到解决方法,折腾2周后偶然间的一篇文章让我找到了问题所在,下面是问题原因:

由于源码是经过移动硬盘拷贝到mac系统的,由于移动硬盘的NTFS分区大小写不敏感导致源码不完整,在mac系统编译时一直就会导致库不能正常编译的问题,解决灵感来自http://www.judymax.com/archives/1087,非常感谢!

至此 其中困扰我最久的坑终于在偶然间的到解决,解决完之后真的是一身轻松的感觉,之前2周一直被问题困扰,浪费很多时间而没有解决。

PS:顺便吐槽一句AOSP项目,你说你写代码非要在同一目录下写2个同名不同大小写的源码是几个意思,太诡异的命名规范,要是同一命名不允许存在这样的重名,那么随便在哪不都可以编译了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值