编译Android源码遇到的一个问题

原创 2015年07月10日 10:42:54

  这是我在CSDN上写的第一个博客,虽然是一个简单的内容,但是希望这是一个良好的开端。本人接触Android开发也已经有一年时间了,仍处于入门阶段,希望能通过写博客的方式来督促自己不断进步。

  接触Android开发接近一年,还从未下载编译过源码。恰逢最近公司新发了台式机,我又动了下载、编译源码的念头。编译源码的教程在网站http://source.android.com/source/downloading.html即可看到,不过需要翻墙。教程也比较简单,跟着教程一步步走就好了。不过下载非常费劲,我下载的是5.1.1版本的,一共51G,下载了半个多星期。下载的时候经常因为网络不稳定(VPN不稳定)而导致中断。遇到这种情况只需要简单写一个脚本,在中断之后再自动启动就好了,代码如下。

#!/bin/bash  
echo "======start repo sync======"  
repo sync  
while [ $? = 1 ]; 
do  
echo “======sync failed, re-sync again======”  
sleep 3  
repo sync  
done

  经过了无限等待,终于下完了5.1.1的源码,总共51G!然后就开始编译了,编译也跟着http://source.android.com/source/building-running.html教程走就好。我在编译的时候遇到了一个有意思的问题。Android源码的编译脚本会检查当前JDK版本,我的Java版本是正确的java version "1.7.0_79",网上要求的也是1.7.X,但是我在make之后,总是会提示我的JDK版本不正确。经过查看了编译脚本代码发现,java_version := $(shell echo '$(java_version_str)' | grep '^java .*[ "]1\.7[\. "$$]'),其实它是通过简单的正则匹配来检查JDK版本的。在我的机器上出现这个问题的原因在于在命令行输入java -version 的时候,会输入以下内容。

Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar 
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

  也就是说在java version "1.7.0_79"之前多了一行内容,正则匹配的时候匹配到这一行了,于是认为我的JDK版本不正确。在Google上找了相关问题了以后,发现上面这一行没办法消除,详情可参考http://stackoverflow.com/questions/11683715/suppressing-the-picked-up-java-options-message。于是我没办法,只能把Android编译脚本中$(error stop)给注释掉。然后就可以开始正常编译了。。。

  不说了,电脑卡得要死了。。。i7处理器也吃力啊,8个CPU的使用率全都100%。目测两个小时以内应该能编译完成。



=========================更新分割线======================

  我还是太年轻啊,我以为注释掉编译脚本中对于 JDK 版本校验就没问题,但是编译了一个半小时之后就出错了,报的错还是跟Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar相关的。然后又上 stackoverflow 上搜了一下,在http://stackoverflow.com/questions/26074446/picked-up-java-tool-options-javaagent-usr-share-java-jayatanaag-jar-when-st找到了解决办法,通过  sudo apt-get remove jayatana 解决了 java -version 出现Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar 的问题。然后再重新编译,成功!

Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决

本文详细记录了wubi安张ubuntu12.04(30G空间)环境下,编译android4.0.1源码的全过程,及问题解决,尤其是因硬盘空间不够导致编译报错的问题。...
  • yanzi1225627
  • yanzi1225627
  • 2013年07月08日 10:10
  • 6591

android 开发中遇到的问题汇总

1.Edittext输入为密码有两种方法,分别是: Android:inputType="textPassword" android:password="true" 2.Android中grav...
  • junfeng120125
  • junfeng120125
  • 2014年01月24日 15:40
  • 5824

Android 模块化编译的一些问题解决方案

mm指从当前目录开始编译,mmm是从指定目录下搜寻Android.mk编译。 模块编译完成后,回到source code所在根目录运行make snod进行打包。 在此期间遇到了如下问题: 1. 修...
  • majestyhao
  • majestyhao
  • 2015年06月07日 00:50
  • 2210

android开发中遇到的问题汇总【七】

更多问题请关注 [android开发遇到问题点滴](https://github.com/ayyb1988/android-issues)...
  • u011570979
  • u011570979
  • 2015年05月19日 12:37
  • 2361

编译android4.4源代码出现的问题及解决

0 由于编译uboot和kernel都比较顺利,因此不做描述 1 /bin/bash:bios:未找到命令解决:sudo apt-get install bison 2 cannot find f...
  • pillarzheng
  • pillarzheng
  • 2016年11月16日 09:23
  • 908

android源码的编译问题总结

由于目前的项目需要修改android的内核源码,所以我需要从android源码的编译开始学习.下面看一下我的编译环境. 我使用的Ubuntu系统的版本是14.04,64位. gcc版本:4.8.8...
  • hongbochen1223
  • hongbochen1223
  • 2015年08月16日 22:30
  • 1486

Android--面试中遇到的问题总结(三)

《Android 开发工程师面试指南 LearningNotes 》,作者是陶程,由梁观全贡献部分。大家可以去知乎关注这两位用心的少年。这份指南包含了大部分Android开发的基础、进阶知识,不仅可以...
  • chaoyu168
  • chaoyu168
  • 2017年02月22日 10:50
  • 2497

Android问题收集——实际项目中遇到的问题及解决方案

自己在实际项目开发中遇到了一些难处理的问题,将问题和解决方案简单记录下来,以备忘以及方便以后交接项目,方案都比较简略,只是描述了整体思路,比较少细节描述,可能需要查看其他博客和文章才能完整解决问题。...
  • caizhegnhao
  • caizhegnhao
  • 2015年10月07日 13:33
  • 6797

编译android源码遇到的问题

1、安装jdk 参考老罗:http://blog.csdn.net/luoshengyang/article/details/6559955 遇到的问题: Your versio...
  • pochuanpiao
  • pochuanpiao
  • 2013年10月24日 18:24
  • 1717

Ubuntu12.04 编译android 源码 遇到的问题

64位Ubuntu编译android的环境配置问题 2013-05-28 00:50 1197人阅读 评论(0) 收藏 举报 原文地址:http://blog.csdn.net/xuk...
  • litaowap
  • litaowap
  • 2014年07月14日 11:34
  • 286
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编译Android源码遇到的一个问题
举报原因:
原因补充:

(最多只允许输入30个字)