免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1856 | 回复: 0
打印 上一主题 下一主题

编译Android Linux通过 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-20 20:19 |只看该作者 |倒序浏览

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


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/66419/showart_2033180.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP