最近在ubuntu12.04 x86环境上编译android4.0系统,和以前在10.10上编译遇到的问题完全不一样,网上也查不到知识,所以把自己解决问题的心得记录如下:
1. 目标发行版 1.5 与默认的源发行版 1.7 冲突。因为我装的jdk是1.7版本的,在了解了build下面的编译规则后,去这个目录下查找使用了jdk1.5规则的mk。
执行一下命令:
grep -R 1.5 *
输出中找到:combo/javac.mk 把所有的用到 -target 1.5 中的1.5改成1.7
注意:在我编译几个小时候还是出错了,居然是bad class file错误,原因还是因为有些库是1.5的没有重新编译,1.7的库using的时候不兼容
最后下了个1.6的终于可以编译了。
2. libcore/luni/src/main/java/java/lang/Enum.java:147: 错误: ordinal可以在Enum中访问private
return return ordinal - o.ordinal;
看到是个访问私有成员语法错误,我将其改了 return return ordinal - o.ordinal();