今天编译freescale BB 2.5的Android,一开始的时候,由于没有设置ANDROID的Java Home变量,导致在编译Java文件的时候,总是会报错:
com.sun.javadoc找不到等错误。
在 build-android.sh 中的设置JDK的PATH后面,添加ANDROID_JAVA_HOME变量就可以了。
export PATH=$PWD/jdk1.6.0_13/bin/:$PATH
export JAVA_HOME=$PWD/jdk1.6.0_13export ANDROID_JAVA_HOME=$JAVA_HOME解决思路:
由于找不到tools.jar/dt.jar等,才导致在编译java文件时给出那些错误提示。
在java/bin下面,grep com.sun.javadoc,找到这个类是在tools.jar中定义的。
据此,在整个android目录中搜索tools.jar,在下面的这个文件中找到相关定义:
android/build/core/find-jdk-tools-jar.sh
if [[ "x$ANDROID_JAVA_HOME" != x && -e $ANDROID_JAVA_HOME/lib/tools.jar ]] ; then
echo $ANDROID_JAVA_HOME/lib/tools.jar
else
JAVAC=$(which javac)
while [ -L $JAVAC ] ; do
LSLINE=$(ls -l $JAVAC)
JAVAC=$(echo -n $LSLINE | sed -e "s/.* -> //")
done
echo $JAVAC | sed -e "s:\(.*\)/bin/javac.*:\\1/lib/tools.jar:"
fi
|
看来,如果定义了ANDROID_JAVA_HOME这个变量,这个脚本会返回这变量下面的tools.jar
如果没有定义,则程序会自动根据javac的路径适配。
既然在其他同事那里可以编译通过,为什么我这里编译不通过呢?
引入build-android.sh里面相关的变量后,which javac,竟然返回这种值:
/home/xiewei/BB2.5/jdk1.6.0_13/bin//javac,javac前面竟然有两个斜杠,最终找到原因:在设置PATH变量的时候,多加了一个"/":
export PATH=$PWD/jdk1.6.0_13/bin/:$PATH
将bin/后面的那个/去掉,再次重新编译,一切OK。
阅读(945) | 评论(0) | 转发(0) |