编译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 的问题。然后再重新编译,成功!

相关文章推荐

Eclipse编译Launcher源码遇到的一个问题

如题,代码都已经没错误了,但是一旦运行就会报一个错            [2015-03-20 15:24:49 - Launcher] Dx 1 error; aborting        ...

ubuntu配置android开发环境和编译源码遇到的一些问题

---------------------------------------------环境变量设置--------------------------------------------- 1....
  • ameyume
  • ameyume
  • 2013年11月07日 15:33
  • 14675

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

64位Ubuntu编译android的环境配置问题 2013-05-28 00:50 1197人阅读 评论(0) 收藏 举报 原文地址:http://blog.csdn.net/xuk...

android 源码编译遇到得一些问题

开发环境是fedora14 2.6.35.10-74.fc14.i686android源码得获取和编译看官网链接http://source.android.com/source/download.ht...

编译android源码所遇到的问题收集

在ubuntu12.04下编译android时,若出现如此错误,那是因为gcc版本太高。 通过gcc -v命令可以发现gcc库在/usr/lib/gcc/i686-linux-gnu目录下,该目录...

Android 4.4源码编译以及遇到的小问题

倒腾了好多天,终于编出来了,看到模拟器正常运行,总算是出了一口气,这几天折腾的不轻了。 现在来说说下载以及编译中遇到的问题。 1,。下载 网上教程多的是,只不过。。。尼玛的我的虚拟机下了一晚上,只...

Android源码编译JNI遇到的问题与解决方法

这些问题是都是坑,有的问题晚上都找不到解决方法,是因为这些问题只要用到源码编译的时候才会遇到,这里我用的是源码编译。 问题如下;问题1.dlopen(“/data/app/xxx.xxx.so”)f...

编译android源码及遇到的问题

编译android源码,首先当然是下载源码。在source.android.com中可以方便的找到下载流程。虽然有现成的方法(GIT&REPO)不过最好还是先熟悉一下这两个工具使用方法最好,否则也会走...

天天记录 - 编译Android 4.1.2源码遇到问题解决

编译过程中遇到问题 target Dex: DownloadProvider collect2: ld terminated with signal 9 [Killed] make: *** [o...

MAC OS X 10.10编译android5.0源码 步骤 以及 遇到的问题

编译前准备: 先安装port:macports下载地址 命令行执行:sudo port install pnupg git libsdl bison make (注意:通常 不需要装make 和b...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编译Android源码遇到的一个问题
举报原因:
原因补充:

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