http://www.eoeandroid.com/thread-38456-1-1.html

周末把系统升级到10.10,首先对Ubuntu在UI上的突飞猛进表示大家赞赏,很多细节都做得不错,尤其是对字体效果的优化。
转入正题,发现,随着系统的升级,android编译的条件也变得相当苛刻了。如果单纯的按照老版本的编译方法,貌似会很容易碰壁。从昨晚到现在,我就把系统重装了两次(从去年底入手新笔电到现在就装过四次系统= =),原因都归功于新环境下编译Froyo。
首先,对于新版本的ubuntu,最好用64位的,在32位环境下编译,在check阶段都报错。之前就是因为我装的是32位的系统,结果一直没成功,不得不连夜下载64位系统装上,杯具得一比。

   1. warning ************************************************************
   2. warning You are attempting to build on a 32-bit system.
   3. warning Only 64-bit build environments are supported beyond froyo/2.2.
   4. warning ************************************************************

如果一定要在32位环境下编译,网上也有解决方案,我试了试,但没成功。
其次是,编译器的版本也要注意,就是gcc和g++,刚开始,我一直安装4.4版本的,结果在编译的时候,发现不少代码编译不通过。起初没留意,自己边改 边把C/C++温习了一把= =,但终究不是解决的办法,总会报些不伦不类的低级错误。想想估计是编译器版本的问题,新版本的编译器对代码解析更加严格了吧。后来还是换回了4.3版本 的。
如果以及安装来4.4的,可以在安装4.3后建立链接

   1. cd /usr/bin  
   2. ln -s gcc-4.3 gcc
   3. ln -s g++-4.3 g++

然后是,SDK编译的必要工具包,如果完全挪用32位编译的工具包,会发现编译过程中缺少很多必要的libs,出现类似 cannot find -lxxx 的错误。因为缺少相关的libs
建议在apt-get install的时候,加上这两个东东:

g++-multilib g++-4.3-multilib

或者,直接大胆的拷贝这个= =

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev java-common unixodbc  

还有就是,Java JDK版本,之前都说,android只支持1.5版本的JDK,现在,对于Froyo,貌似支持1.6的了,但杯具的是,不支持1.5,编译时在 check阶段,会报错,必须1.6版本的JDK。所以啊,编译的时候注意了,既然允许1.6了,就不要在1.5上挣扎了,hoho~

最后,就是,做好以上准备之后,make之,以为可以看看电视喝喝茶什么的,结果,给我来了这么一个error:
build/core/base_rules.mk:128: *** dalvik/libcore: MODULE.TARGET.JAVA_LIBRARIES.core already defined by libcore.  Stop.
网上有解决方案,请大胆的点击这里,我没试,同步太耗时间来,我直接找到base_rules.mk的第128行,用#注释之!像这样:

#$(error $(LOCAL_PATH): $(module_id) already defined by $($(module_id)))

需要声明的是,这只是在非常情况下做的非常处理,如果在这个地方没报错,就不用修改源文件来。
其实,我觉得,在check tools阶段,需要校验很多模块与工具,比如什么系统是32位还是64位啊,JDK那个版本啊之类的,如果检测到某个工具不满足要求就报错了。我们可以 尝试将这个校验条件给注释掉,跳过对该工具的检测。这种检测应该,我说的是应该,只是为保证安全且成功的编译而提供的一种校验机制,是需要的,但不是必须 的,所以,在一些非常情况,我们可以做一下非常处理。

以上就是我在10.10倒腾了一天的心得体会,希望对大家有帮助,有不对的地方,请大胆拍砖指正,谢谢!

转载于:https://www.cnblogs.com/IamEasy_Man/archive/2010/12/08/1900787.html

【摘录】Ubuntu 10.10编译Android froyo可能需要注意的几个地方相关推荐

  1. ubuntu系统下载编译android源码

    在ubuntu系统下编译android需要注意的事项: 1. 参考http://source.android.com/中的安装说明. 2. 安装JDK6中碰到的问题可以参考http://hi.baid ...

  2. 安卓9.0刷linux,Ubuntu系统下编译Android 9.0系统

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 前言 在Ubuntu系统下编译Android系统.哎呀不知道是不是换了新电脑的缘故,这次编译居然从安装JDK和配置环境下 ...

  3. ubuntu 16.04 编译android 7.1,jack报错

    ubuntu 16.04 编译android 7.1,jack报错 Writing client settings in /home/nikos/.jack-settings Installing j ...

  4. android s905 编译_NanoPi K2 (Amlogic S905) Ubuntu 16.04 编译Android 5.1系统源码

    NanoPi K2 (Amlogic S905) Ubuntu 16.04 编译Android 5.1系统源码 1. 下载源码 在这里下载https://www.mediafire.com/folde ...

  5. linux3.10.46源码下载,Ubuntu11.10下编译android源码4.0.3

    1.初始化编译环境 软件需求: Python2.5-2.7,可以http://www.python.org/download/下载(Ubuntu11.10自带). JDK6:编译Gingerbread ...

  6. android 3.10. 内核,编译android 3.10内核源码时出错

    最近我尝试为我的xiaomi mi4c交叉编译android内核. 要做到这一点,我已经下载并这样配置的工具链:从这里编译android 3.10内核源码时出错 git clone https://a ...

  7. Mac 10.14 编译Android 8.1源码及刷入nexus 6p

    环境准备 官网 描述得已经相当清楚了 ,这里稍微总结一下: 创建区分大小写的磁盘映像 mac系统默认是不区分大小写的,所以我们需要创建一个区分大小写的文件系统 hdiutil create -type ...

  8. quado编辑Android代码步骤,Ubuntu11.10下编译android内核源码

    编译android源码时并不会自动编译android内核,因此需要手动编译这部分代码.编译内核所用的时间比编译android源码要少得多,只需一会就编译完成. 1.确定内核版本 进入存放android ...

  9. Ubuntu 16.04 编译Android 6.0系统源码

    准备环境 1.安装open-jdk7 [使用open-jdk8会报错],原因是: 在build/core/main.mk中默认指定的是jdk1.7 # Check for the correct ve ...

最新文章

  1. 009_Raphael动画
  2. mysql5.1编译安装centos7_CentOS7下 Nginx1.13.5 + PHP7.1.10 + MySQL5.7.19 源码编译安装
  3. java控制一次传10条数据_java 定时同步数据的任务优化
  4. linux操作系统版本 3100,Linux操作系统默认打开文件数
  5. 【算法】广度遍历算法的应用 求出距离顶点v0的最短路径长度为最长的一个顶点,图结构的bfs生成树及其双亲表示形式
  6. AWS安装CDH5.3-CentOS6.4中关键操作步骤
  7. 【今日CV 视觉论文速览】Tue 21 Mar 2019
  8. 吴恩达深度学习2.1练习_Improving Deep Neural Networks(Initialization_Regularization_Gradientchecking)
  9. 机器学习框架_一文了解机器学习框架-TensorFlow的原理和用途
  10. 约数国王c语言,求最大公约数问题
  11. [ 读书笔记 ] 1 -《 程序员修炼之道 - 通向务实的最高境界 (第2版)》
  12. 聚类分析-K-means clustering 在生物信息学中的应用
  13. python爬虫系列第六次笔记之验证码以及代理的使用
  14. Java实现:挖金矿问题
  15. 上海php程序员职友集,好程序员WEB前端培训|HTML5培训|H5培训-好程序员官网
  16. java上传文件怎么设置成777权限_如何修改文件夹777权限
  17. C++ 打印表格到屏幕或文件
  18. 新显卡出世,谈谈与深度学习有关的显卡架构和相关技术
  19. PAT 1003 我要通过! python
  20. 服务器摆放需要预留U位么_客厅沙发摆放正确,让你一年都风调雨顺,财源滚滚来...

热门文章

  1. python-关于时间处理的知识
  2. 2009年千万亿次超级计算机,2009年10月29日 第一台国产千万亿次超级计算机亮相...
  3. c语言rsi2010中制运行,汇编语言初探(控制类指令)-来自第三章3.6的笔记-P135-P163
  4. E1,CE1,T1,PRI,BRI的区别以及接口
  5. # 华为mate40 or iphon 12
  6. 《机器学习实战》——朴素贝叶斯
  7. 决策理论(decision theory)
  8. 转:青年教师科研方向规划
  9. 洛谷 P4707 【重返现世】
  10. 韩顺平 uml视频教程 笔记