builing android2.2(froyo)

估计和编donut差不多,参照donut的编译步骤,由于我之前编译过donut,所以环境基本都有了(环境配置参照我的blog),直接开始编译就行了。

 

1 执行envsetup.sh

切到froyo的目录

. build/envsetup.sh

 

 

2 开始编译

在froyo目录

make

提示出错,说需要java1.6

要安装java1.6并修改配置文件.bashrc, 由于我现在要维护donut和froyo两个版本,编译的时候需要的环境变量不一样,所以把以前写在.bashrc中的相关内容剪切出来,作成两个脚本,一个编donut的时候用,一个给froyo用,脚本都放在他们源码的顶级目录。

 

修改一下froyo的envsetup_mayq文件,使用java1.6,我没有java1.6,所以要先装一个,用新立得软件管理工具装,可以搜到sun-java6-sdk。

编译之前既要执行我的envsetup_mayq,又要执行froyo自带的envsetup.sh,干脆让我的调用它的,以后只要执行我的就行了。

 

envsetup_mayq的内容如下:

. build/envsetup.sh

export JAVA_HOME=/usr/lib/jvm/java-6-sun

export CLASSPATH=$JAVA_HOME/lib

export ANDROID_JAVA_HOME=$JAVA_HOME

export PATH=$PATH:$JAVA_HOME/bin

 

   再make,没遇到什么问题,编译成功。

 

3 启动emulator

先设置PATH,指向emulator的位置,

添加/home/peipei/froyo/out/host/linux-x86/bin到envsetup_mayq的PATH中,

敲命令emulator, 提示没有avd

$android create avd --target 8 --name avd_mayq

提示没有设置ANDROID_SWT,添加如下环境变量:

export ANDROID_SWT=~/froyo/out/host/linux-x86/framework

再尝试创建avd

peipei@ubuntu:~/froyo$ android create avd --target 8 --name avd_froyo

Error: Error parsing the sdk.

Error: /home/peipei/froyo/out/host/linux-x86/platforms is missing.

Error: Unable to parse SDK content.

peipei@ubuntu:~/froyo$ 

提示没有sdk,难道要编sdk?

 

 

4 编译sdk

$make sdk

前面一直都很正常,到生成doc的时候报错:

Docs droiddoc: out/target/common/docs/services

javadoc: error - In doclet class DroidDoc,  method start has thrown an exception java.lang.reflect.InvocationTargetException

com.sun.tools.javac.code.Symbol$CompletionFailure: class file for sun.util.resources.OpenListResourceBundle not found

1 error

make: *** [out/target/common/docs/services-timestamp] Error 45

解决办法:在/home/peipei/froyo/build/core/droiddoc.mk:line158加 -XDignore.symbol.file /

我本来在改动的地方加了注释# mayq,重新编译的时候居然出现语法错误,看来是我写错了,于是我把注释去了,就好了。

参考:http://code.google.com/p/android/issues/detail?id=1261

重新编译,成功了,编译结果:

Docs droiddoc: out/target/common/docs/dexdeps

DroidDoc took 0 sec. to write docs to out/target/common/docs/dexdeps

Package SDK Stubs: out/target/common/obj/PACKAGING/android_jar_intermediates/android.jar

Package SDK: out/host/linux-x86/sdk/android-sdk_eng.peipei_linux-x86.zip

和android-sdk_eng.peipei_linux-x86.zip同级目录下还有一个同名的未压缩的文件夹,我们用它就可以了。

 

 

5 回到第3步,重新尝试创建avd,启动emulator

peipei@ubuntu:~/froyo$ android create avd --target 8 --name avd_froyo

Error: Error parsing the sdk.

Error: /home/peipei/froyo/out/host/linux-x86/platforms is missing.

Error: Unable to parse SDK content.

还是一样的错,上面提到的路径是哪儿来的?另外,我还没有做什么设置,编出来的sdk应该没有用到,所以还报一样的错也是合理的。

换个办法,不用命令行创建avd了,编个adt,Eclipse+adt+sdk,创建avd。

 

 

6 编译adt

编译adt的时候,之前编出来的sdk会被清除,最好做个备份。

编donut adt的时候,我们用的是$ development/tools/eclipse/scripts/build_server.sh ~/adt/

所以我们找一下froyo有没有build_server.sh,找到了,在/home/peipei/froyo/sdk/eclipse/scripts

在envsetup_mayq中添加环境变量 export ECLISPE_HOME=~/Downloads/eclipse_ganymede_jee

别忘了在修改之后执行一下envsetup_mayq

顺便说一句,发现一篇编译android的好文章http://www.netmite.com/android/mydroid/cupcake/development/docs/howto_build_SDK.txt

建个文件夹,放编译出来的结果,我新建的是froyo/adt文件夹

peipei@ubuntu:~/froyo$ ./sdk/eclipse/scripts/build_server.sh ~/froyo/adt

注意adt要写绝对路径,否则将报错:

**** Package in adt

Error: Build failed to produce adt/android-eclipse

Aborting

 

编译成功,结果:

ZIP of Update site available at /home/peipei/froyo/adt/android-eclipse-v201008111535.zip

 

 

7 Eclipse+adt+sdk

把这三个东西拼起来

注意Eclipse的版本有讲究,我用的是Eclispe3.4 ganymede jee

为了同时维护donut和froyo的Eclipse开发环境,我拷贝了一份Eclipse,把原来的donut的adt卸掉,装上froyo的adt,再将sdk的路径改掉。

把eclipse的workspace路径也改掉,在ui上没找到选项,直接改配置文件/home/peipei/Downloads/eclipse_ganymede_jee_froyo/configuration/.settings/org.eclipse.ui.ide.prefs中有这么一句:SHOW_WORKSPACE_SELECTION_DIALOG=fale,false改成true,重启就出现对话框了,让你选workspace路径。

无法启动,只有一个小对话框,这个问题以前碰到过,改/home/peipei/Downloads/eclipse_ganymede_jee_froyo/eclipse.ini文件,在末尾加这么一句:

-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner

重启eclipse,ok。

通过Help->Software Updates-> Installed Software 把Android DDM和Adnroid Development Tools卸掉。

卸载过程中,问你是否信任某个东东,打勾,ok。

把froyo的adt装上,具体过程就不写了,设置好sdk的路径,由于编译adt的时候把sdk给清除了,所以再编个sdk出来,参考步骤4,这次别忘了做好备份。

 

启动Eclipse,新建avd,启动模拟器,ok。

我们已经借助elcipse+adt+sdk创建了一个avd,虽然不知道放到哪儿了,现在在Terminla敲emulator也可以启动模拟器了,太好了。

 

 

你可能感兴趣的:(java,eclipse,android,ubuntu,Path,Parsing)