文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>编译Android Linux通过

编译Android Linux通过

时间:2009-08-20  来源:xw_max

今天编译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_13
export 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。





相关阅读 更多 +
排行榜 更多 +
边境检察最后区域手机版下载

边境检察最后区域手机版下载

角色扮演 下载
酋长你别跑手游下载

酋长你别跑手游下载

休闲益智 下载
心动漫画app下载官方版

心动漫画app下载官方版

浏览阅读 下载