Android编译问题

一、JDK版本问题

1.安装JDK5

下载:JDK5

安装:

cp jdk-1_5_0_22-linux-amd64.bin /usr/lib/jvm/
cd /usr/lib/jvm/
chmod u+x jdk-1_5_0_22-linux-amd64.bin
./jdk-1_5_0_22-linux-amd64.bin
rm jdk-1_5_0_22-linux-amd64.bin
mv jdk1.5.0_22/ java-1.5.0.22-sun/
ln -s java-1.5.0.22-sun java-5-sun

2.添加

update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-1.5.0.22-sun/bin/javac 300
update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.5.0.22-sun/bin/java 300

3.配置

update-alternatives --config java
update-alternatives --config javac

二、编译问题汇总

1.Could not load 'clearsilver-jni'

在64位的Ubuntu Linux环境编译Android 2.3.4时,遇到如下错误:

Could not load ’clearsilver-jni’
java.library.path = out/host/linux-x86/lib
make: *** [out/target/common/docs/api-stubs-timestamp] Error 45
make: *** Waiting for unfinished jobs....
Could not load ’clearsilver-jni’
java.library.path = out/host/linux-x86/lib
make: *** [out/target/common/docs/doc-comment-check-timestamp] Error 45

原因:这是因为在编译clearsilver时引用了32位的设定。

此时有如下两种方法解决问题,方法一:

将clearsilver在Makefile里的LOCAL_LDFLAGS += -m32和LOCAL_CFLAGS += -m32由原本的-m32设定变为-m64。

find ./external/clearsilver/ -name '*.mk' -exec grep -l 'm32' {} \; -exec sed -i 's/m32/m64/g' {} \;

./external/clearsilver/util/Android.mk

./external/clearsilver/cs/Android.mk

./external/clearsilver/java-jni/Android.mk

./external/clearsilver/cgi/Android.mk

而使用这个方法,若将原码拿到32位的Ubuntu Linux环境编译时,则需要反过来将-m64修改为-m32。

方法二:

将clearsilver在Makefile里的LOCAL_LDFLAGS += -m32和LOCAL_CFLAGS += -m32直接注释掉。

find ./external/clearsilver/ -name '*.mk' -exec grep -l 'm32' {} \; -exec sed -i 's/LOCAL_CFLAGS\ +=\ -m32/#\ LOCAL_CFLAGS\ +=\ -m32/g' {} \;
find ./external/clearsilver/ -name '*.mk' -exec grep -l 'm32' {} \; -exec sed -i 's/LOCAL_LDFLAGS\ +=\ -m32/#\ LOCAL_LDFLAGS\ +=\ -m32/g' {} \;

采用这种方法,原码不论在32位或64位元的Ubuntu Linux编译时,都将不再遇到该问题。

2.Your version is: java version "1.5.0_22".

解决办法:

vi /etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
#add by tank for JDK6
PATH+="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-6-sun/bin"
JAVA_HOME+="/usr/lib/jvm/java-6-sun"
CLASSPATH+="/usr/lib/jvm/java-6-sun/lib"
#for JDK5
PATH+="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-5-sun/bin"
CLASSPATH+="/usr/lib/jvm/java-5-sun/lib"
JAVA_HOME+="/usr/lib/jvm/java-5-sun"
#end tank


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值