1. JDK 6

这个需要到sun的网站下载一个安装即可:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html

下载完之后chmod再运行安装

2. 最新的android源码要求make的版本为3.81, make3.82的版本貌似有些兼容性的问题,试了下需要做些手脚才能顺利地downgrade回旧的版本

运行命令

  1. sudoyumdowngrademake--releasever=13

结果出现错误提示
  1. ====================================================================================================================================================
  2. PackageArchVersionRepositorySize
  3. ===================================================================================================================================================
  4. Downgrading:
  5. makei6861:3.81-19.fc13updates385k
  6. TransactionSummary
  7. ====================================================================================================================================================
  8. Downgrade1Package
  9. Totalsize:385k
  10. Isthisok[y/N]:y
  11. DownloadingPackages:
  12. warning:rpmts_HdrFromFdno:HeaderV3RSA/SHA256Signature,keyIDe8e40fde:NOKEY
  13. Retrievingkeyfromfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-i386
  14. TheGPGkeyslistedforthe"Fedora13-i386-Updates"repositoryarealreadyinstalledbuttheyarenotcorrectforthispackage.
  15. CheckthatthecorrectkeyURLsareconfiguredforthisrepository.

这是因为gpg key是fedora16版本的,降级回13的话需要用到13的key,上网搜索了下找到了之后放到/etc/pki/rpm-gpg/覆盖RPM-GPG-KEY-fedora-i386之后再重新运行上面的命令即可(记得备份原文件,降级完成后要把文件还原的,要不然系统升级会有问题)。


最后为了防止系统每次自动把make更新回3.82,我们在/etc/yum.conf里再添加一行来过滤掉make的自动升级

  1. exclude=make


3. 缺失的系统工具

我的fedora16安装的时候选择的是softwaredevelopment的配置安装的,编译的时候出错需要安装的工具包括

  1. sudoyuminstallgperf

4. 编译过程中的错误

a)perl错误

  1. Can'tlocateSwitch.pmin@INC(@INCcontains:/usr/local/lib/perl5/usr/local/share/perl5/usr/lib/perl5/vendor_perl/usr/share/perl5/vendor_perl/usr/lib/perl5/usr/share/perl5.)atexternal/webkit/Source/WebCore/make-hash-tools.plline23.
  2. BEGINfailed--compilationabortedatexternal/webkit/Source/WebCore/make-hash-tools.plline23.
  3. make:***[out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/Source/WebCore/html/DocTypeStrings.cpp]Error2
  4. make:***Waitingforunfinishedjobs....
  5. targetGenerated:libwebcore<=external/webkit/Source/WebCore/platform/ColorData.gperf
  6. Can'tlocateSwitch.pmin@INC(@INCcontains:/usr/local/lib/perl5/usr/local/share/perl5/usr/lib/perl5/vendor_perl/usr/share/perl5/vendor_perl/usr/lib/perl5/usr/share/perl5.)atexternal/webkit/Source/WebCore/make-hash-tools.plline23.
  7. BEGINfailed--compilationabortedatexternal/webkit/Source/WebCore/make-hash-tools.plline23.
  8. make:***[out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/Source/WebCore/platform/ColorData.cpp]Error2
  9. targetGenerated:libwebcore<=external/webkit/Source/WebCore/html/parser/HTMLEntityNames.in
这个错误是由于fedora16中新的perl版本将switch的module拿掉了,需要修改webkit的源码来编译通过:
  1. 进入external/webkit的目录,打下面的patch
  1. diff--gita/Source/WebCore/make-hash-tools.plb/Source/WebCore/make-hash-tools.pl
  2. index37639eb..2968beb100644
  3. ---a/Source/WebCore/make-hash-tools.pl
  4. +++b/Source/WebCore/make-hash-tools.pl
  5. @@-20,7+20,8@@
  6. #Boston,MA02110-1301,USA.
  7. usestrict;
  8. -useSwitch;
  9. +#useSwitch;
  10. +usefeatureqw(switch);
  11. useFile::Basename;
  12. my$outdir=$ARGV[0];
  13. @@-28,9+29,9@@shift;
  14. my$option=basename($ARGV[0],".gperf");
  15. -switch($option){
  16. +given($option){
  17. -case"DocTypeStrings"{
  18. +when("DocTypeStrings"){
  19. my$docTypeStringsGenerated="$outdir/DocTypeStrings.cpp";
  20. my$docTypeStringsGperf=$ARGV[0];
  21. @@-40,7+41,7@@case"DocTypeStrings"{
  22. }#case"DocTypeStrings"
  23. -case"ColorData"{
  24. +when("ColorData"){
  25. my$colorDataGenerated="$outdir/ColorData.cpp";
  26. my$colorDataGperf=$ARGV[0];

b) mutable错误

  1. external/oprofile/libpp/format_output.h:94:22:error:reference‘counts’cannotbedeclared‘mutable’[-fpermissive]

解决方法:

external/oprofile里打patch或者自己手动修改文件

  1. diff--gita/libpp/format_output.hb/libpp/format_output.h
  2. indexb6c4592..4efdbb1100644
  3. ---a/libpp/format_output.h
  4. +++b/libpp/format_output.h
  5. @@-91,7+91,8@@protected:
  6. symbol_entryconst&symbol;
  7. sample_entryconst&sample;
  8. size_tpclass;
  9. -mutablecounts_t&counts;
  10. +//mutablecounts_t&counts;
  11. +counts_t&counts;
  12. extra_imagesconst&extra;
  13. doublediff;
  14. };

c) gtest错误

  1. external/gtest/src/../include/gtest/internal/gtest-param-util.h:122:11:error:‘ptrdiff_t’doesnotnameatype
解决:

external/gtest里打patch或者自己手动修改

  1. diff--gita/include/gtest/internal/gtest-param-util.hb/include/gtest/internal/gtest-param-util.h
  2. index5559ab4..b964c45100644
  3. ---a/include/gtest/internal/gtest-param-util.h
  4. +++b/include/gtest/internal/gtest-param-util.h
  5. @@-37,6+37,7@@
  6. #include<iterator>
  7. #include<utility>
  8. #include<vector>
  9. +#include<cstddef>
  10. #include<gtest/internal/gtest-port.h>

d) werror错误

  1. frameworks/compile/slang/slang_rs_export_foreach.cpp:247:23:error:variable‘ParamName’setbutnotused[-Werror=unused-but-set-variable]


解决:

进frameworks/compile/slang打patch或者手动修改

  1. diff--gita/Android.mkb/Android.mk
  2. indexfce3637..aff5b7d100644
  3. ---a/Android.mk
  4. +++b/Android.mk
  5. @@-19,7+19,8@@ifeq($(TARGET_BUILD_APPS),)
  6. LOCAL_PATH:=$(callmy-dir)
  7. -local_cflags_for_slang:=-Wno-sign-promo-Wall-Wno-unused-parameter-Werror
  8. +#local_cflags_for_slang:=-Wno-sign-promo-Wall-Wno-unused-parameter-Werror
  9. +local_cflags_for_slang:=-Wno-sign-promo-Wall-Wno-unused-parameter
  10. ifneq($(TARGET_BUILD_VARIANT),eng)
  11. local_cflags_for_slang+=-D__DISABLE_ASSERTS
  12. endif


e) libx11错误

  1. /usr/bin/ld:out/host/linux-x86/obj/EXECUTABLES/emulator_renderer_intermediates/main.o:undefinedreferencetosymbol'XInitThreads'


解决:

进development打patch或者手动修改

  1. diff--gita/tools/emulator/opengl/host/renderer/Android.mkb/tools/emulator/opengl/host/renderer/Android.mk
  2. index55fcb80..5e4d0bb100644
  3. ---a/tools/emulator/opengl/host/renderer/Android.mk
  4. +++b/tools/emulator/opengl/host/renderer/Android.mk
  5. @@-5,6+5,7@@$(callemugl-begin-host-executable,emulator_renderer)
  6. $(callemugl-import,libOpenglRender)
  7. LOCAL_SRC_FILES:=main.cpp
  8. LOCAL_CFLAGS+=-O0-g
  9. +LOCAL_LDLIBS+=-lX11
  10. #ifeq($(HOST_OS),windows)
  11. #LOCAL_LDLIBS+=-lws2_32

更多相关文章

  1. 启动android project时报resources.ap_ does not exist
  2. 对Menu Button 说再见
  3. -Android数据库SQLiteDatabase的使用
  4. 安卓设备修改屏幕像素密度以及查看屏幕分辨率
  5. 【odroid-xu3】 ODROID-XU3软件环境搭建记录
  6. Android(安卓)studio -SVN 使用笔记
  7. Error generating final archive: Debug Certificate expired on
  8. Andriod(三):配置文件build.gradle与AndroidManifest.xml
  9. android4.4修改低电压提醒

随机推荐

  1. android原生项目整合ReactNative
  2. Android(安卓)Tablet PC avec Android(安
  3. android sdk setup时出现:HTTPS SSL erro
  4. Android数据的四种存储方式SharedPrefere
  5. Android中三星调用系统相机拍照后旋转的
  6. android 关于tts的一些参数
  7. 搭建android测试环境
  8. Android中通过Intent 调用图片、视频、音
  9. Android(安卓)EditText输入限制最大字符
  10. android 自定义控件属性