查看文章 |
http://blog.csdn.net/mayqlzu/archive/2010/08/11/5804771.aspx
估计和编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也可以启动模拟器了,太好了。 |

