1.
<wbr><wbr><wbr><wbr><wbr> 编译 CTS<br><wbr><wbr><wbr><wbr> 编译 CTS 很简单,只需要如下 3 步。(黑色字体表示命令,灰色背景表示输入<br>
命令后的输出信息)<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
(进入 android 源代码路径)<br>
localhost ~ # cd /work/android_src<br>
localhost android_src # source build/envsetup.sh (进行一些初始化工作)<br>
including device/htc/dream/vendorsetup.sh<br>
including device/htc/passion/vendorsetup.sh<br>
including device/htc/sapphire/vendorsetup.sh<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
(编译 CTS)<br>
localhost android_src # make cts<br>
============================================<br>
PLATFORM_VERSION_CODENAME=REL<br>
PLATFORM_VERSION=2.2<br>
TARGET_PRODUCT=generic<br>
TARGET_BUILD_VARIANT=eng<br>
TARGET_SIMULATOR=<br>
TARGET_BUILD_TYPE=release<br>
TARGET_BUILD_APPS=<br>
TARGET_ARCH=arm<br>
HOST_ARCH=x86<br>
HOST_OS=linux<br>
HOST_BUILD_TYPE=release<br>
BUILD_ID=FRF85B<br>
============================================<br>
.......................................(略)<br>
编译过程可能并不是一帆风顺,一般需要遇到 2 个问题。<br>
1)没有设置 android 的 java 环境变量<br>
没有设置 Java 的环境变量,编译时会出现以下错误:<br>
make: *** No rule to make target `run-java-tool', needed by `out/target/common/docs/api-<br>
stubs-timestamp'. Stop.<br>
解决方法:<br>
使用如下命令,设置环境变量。<br>
localhost android_src # export ANDROID_JAVA_HOME=$JAVA_HOME<br>
2)修改编译发现的文件冲突<br>
在编译中会多次出现文件编译冲突现象,这里列举一例:<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 1<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> ArcherMind Technology (Nanjing) Co., Ltd.<br>
java.util.zip.ZipException: duplicate entry: hyts_Foo.c<br><wbr><wbr><wbr><wbr><wbr> at java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:175)<br><wbr><wbr><wbr><wbr><wbr> at java.util.jar.JarOutputStream.putNextEntry(JarOutputStream.java:92)<br><wbr><wbr><wbr><wbr><wbr> at sun.tools.jar.Main.addFile(Main.java:713)<br><wbr><wbr><wbr><wbr><wbr> at sun.tools.jar.Main.update(Main.java:567)<br><wbr><wbr><wbr><wbr><wbr> at sun.tools.jar.Main.run(Main.java:202)<br><wbr><wbr><wbr><wbr><wbr> at sun.tools.jar.Main.main(Main.java:1149)<br>
make: *** [out/target/common/obj/JAVA_LIBRARIES/core-tests_intermediates/javalib.jar]<br>
Error 1<br>
make: *** Deleting file `out/target/common/obj/JAVA_LIBRARIES/core-<br>
tests_intermediates/javalib.jar'<br><wbr>解决办法:<br><wbr><wbr><wbr><wbr><wbr><wbr> 出现这个问题是由于源代码中存在多个叫做 hyts_Foo.c 的源文件,只需要把重<br>
名的文件删除掉或改名即可。重复文件一般位于 dalvik 目录内。(千万不要把所有叫<br>
做 hyts_Foo.c 的文件都删除,那样你就糗大了。一定要留下来一个,建议改名,不要<br>
删除文件。)<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>