//
为了更好的理解仪器测试,之前的观点是:
1.下载完整的android源码
3. 执行仪器测试
鉴于前面的观点,本文以及后面的文章都是关于android源码编译的。
首先是下载android的源代码。 我下载的是Android4.2.2_R1。 至于如何下载,这里不再赘述。 网上有很多教程。 但需要注意的一点是C盘一定要留有足够的空间。 编码本身会加速编译输出,大约需要30到40G的C盘空间。
以下是本文的主题。 编译的时候提示版本不正确。
【问题描述】
因为之前安装AndroidSDK时PC安装的是JDK1.7.05版本,在编译androidsourcecode时会提示java版本错误,然后编译停止。
【解决方案】
1、编译时在源码/build目录中定义了java版本的问题,所以首先考虑改变/build目录下相关文件中java和javac版本的判断,然后达到不重装的目的java的新版本。 达到编译的目的。
Ø打开/build/core/main.mk文件。 从第126行开始,你会发现makefile决定了java和javac版本。 相关代码如右图:
Ø分析里面的代码,就可以明白使用系统自带的Openjdk和jdk1.7编译困难的原因。 因此,我们将 '^java.*["]1.6[."$$]' 更改为 '^java.*["]1.7[."$$]'。
Ø同上,再次更改文件中的javac版本判定,更改后再编译源代码。
1、如果按照方法1更改后一直提示java版本相关的问题,此时我们只能考虑根据编译要求安装指定版本的JDK,即jdk1.6的版本。
Ø从里面下载jdk,我的版本是jdk1.6.0_12,我下载的是bin文件源码jdk编译版本,我把下载的jdk1.6.0_12.bin文件放在/usr/lib/jvm/java中
之后,执行:
sudochmodu+x/usr/lib/jvm/java/jdk1.6.0_12.bin
Ø更改bin文件权限使其可执行,然后执行:
须藤/usr/lib/jvm/java/jdk1.6.0_12.bin
Ø配置环境变量
sudovi/etc/环境
添加以下内容:
路径=“……:/usr/lib/jvm/java/jdk1.6.0_12/bin”
CLASSPATH=.:/usr/lib/jvm/java/jdk1.6.0_12/lib
JAVA_HOME=/usr/lib/jvm/java/jdk1.6.0_12
Ø配置生效
sudosource /home/ghou/.bashrc
Ø添加新安装的java版本
更新替代方案--安装/usr/bin/javajava/usr/lib/jvm/java/jdk1.6.0_12/bin/java300
更新替代方案--安装/usr/bin/javacjavac/usr/lib/jvm/java/jdk1.6.0_12/bin/javac300
Ø更改默认java版本
更新替代方案--configjava
选择jdk1.6.0.12作为当前jdk版本
Ø查看当前java版本
java版本
javac 版本
此时如果显示的java版本是我们安装的1.6.0.20,则说明JDK1.6安装成功。
2、经过两步后,编译过程中仍然提示JAVALIBRARIES相关问题,如下:
这是因为java下安装的jar包没有被调用。 这可能和之前设置的JAVA_HOME有关。 解决方法如下:
Ø检查jar是否在安装路径中:
威奇哈尔
- 如果不在安装的java目录中,则使用sudoupdate-alternatives –configjar配置
-如果输出为空,则可以通过链接将jar和其他文件连接到/usr/bin/jar和其他文件:
sudoln -s/jdk1.6.0_12/bin/jar/bin/jar
sudoln -s/jdk1.6.0_12/bin/java/bin/java
sudoln -s/jdk1.6.0_12/bin/javac/bin/javac
sudoln -s/jdk1.6.0_12/bin/javah/bin/javah
sudoln -s/jdk1.6.0_12/bin/javadoc/bin/javadoc
至此源码jdk编译版本,Java的问题应该已经解决了。