关闭

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

标签: android源码编译异常
321人阅读 评论(0) 收藏 举报
分类:

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5881次
    • 积分:192
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:0篇
    • 译文:1篇
    • 评论:0条
    文章分类