在Ubuntu14.04上编译Android4.0.1出现的几个问题

一. 工具

sudo apt-get install git-core gnupg flex bison gperf build-essential \

      zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \

      libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \

      libgl1-mesa-dev g++-multilib mingw32 tofrodos \

      python-markdown libxml2-utils xsltproc zlib1g-dev:i386

二.JDK

oracle 官网下载JDk6_29(bin文件,注意安装方法,环境变量,update-alternative等)   http://www.oracle.com/technetwork/java/javase/archive-139210.html

三.gcc/g++的版本

 默认的gcc g++版本为4.6.3,  将其改为4.4.步骤:

 sudo apt-get install gcc-4.4
 sudo apt-get install g++-4.4
 cd /usr/bin
 ls -l gcc*
 sudo mv gcc gcc.bak
 sudo ln -s gcc-4.4 gcc
 ls -l g++*
 sudo mv g++ g++.bak
 sudo ln -s g++-4.4 g++
 gcc -v
 g++ -v

四.源的问题

  很多repo不能用,这个一般都可以: curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" > ~/bin/repo

  另外。init的时候用这个: repo init -u git://git.omapzoom.org/platform/manifest -b android-4.0.1_r1

  之后 repo sync出现“fatal: ‘../platform/abi/cpp.git‘ does not appear to be a git repository”的解决方案,则打开.repo目录下的manifest.xml文件(命令vim manifest.xml)并找到fetch属性,在我的文件中显示fetch="..",将fetch修改为 fetch="git://git.omapzoom.org"

五 .同步后出现的问题

1. 出错以下出错信息:

[plain] view plaincopy

  1. Import includes file: out/target/product/mx3/obj/STATIC_LIBRARIES/libwebcore_intermediates/import_includes
  2. target Generated: libwebcore <= external/webkit/Source/WebCore/css/tokenizer.flex
  3. <span style="rgb(255, 255, 51);">Can‘t locate Switch.pm in @INC (you may need to install the Switch module)</span> (@INC contains: /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at external/webkit/Source/WebCore/make-hash-tools.pl line 23.
  4. BEGIN failed--compilation aborted at external/webkit/Source/WebCore/make-hash-tools.pl line 23.
  5. Can‘t locate Switch.pm in @INC (you may need to install the Switch module) (@INC contains: /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at external/webkit/Source/WebCore/make-hash-tools.pl line 23.
  6. BEGIN failed--compilation aborted at external/webkit/Source/WebCore/make-hash-tools.pl line 23.
  7. make: *** [out/target/product/mx3/obj/STATIC_LIBRARIES/libwebcore_intermediates/Source/WebCore/html/DocTypeStrings.cpp] Error 2
  8. make: *** Waiting for unfinished jobs....
  9. make: *** [out/target/product/mx3/obj/STATIC_LIBRARIES/libwebcore_intermediates/Source/WebCore/platform/ColorData.cpp] Error 2
  10. target Generated: libwebcore <= external/webkit/Source/WebCore/html/parser/HTMLEntityNames.in

解决方法是安装perl的switch库:

[plain] view plaincopy

  1. sudo apt-get install libswitch-perl

2.dalvik/vm/native/dalvik_system_Zygote.cpp:216:43: error: ‘setrlimit’ was not declared in this scope
err = setrlimit(contents[0], &rlim);
^
<command-line>:0:0: warning: "_FORTIFY_SOURCE" redefined [enabled by default]
dalvik/vm/native/java_lang_Float.cpp:1:0: note: this is the location of the previous definition
/*
^
make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libdvm_intermediates/native/dalvik_system_Zygote.o] Error 1
make: *** Waiting for unfinished jobs....

解决办法
添加头文件#include <sys/resource.h>到以下文件
dalvik/vm/native/dalvik_system_Zygote.cpp

3.host Executable: emulator_renderer (out/host/linux-x86/obj/EXECUTABLES/emulator_renderer_intermediates/emulator_renderer)
/usr/bin/ld:
out/host/linux-x86/obj/EXECUTABLES/emulator_renderer_intermediates/main.o:
undefined reference to symbol ‘XInitThreads‘
//usr/lib/i386-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator_renderer_intermediates/emulator_renderer] Error 1
make: *** Waiting for unfinished jobs....

解决办法:
修改development/tools/emulator/opengl/host/renderer/Android.mk文件
[email protected]:/home/dzt/android/WORKING_DIRECTORY# ls
abi cts docs frameworks Makefile prebuilt
bionic dalvik download.sh hardware ndk sdk
bootable development download.sh~ hs_err_pid6190.log out system
build device external libcore packages v8.log
[email protected]:/home/dzt/android/WORKING_DIRECTORY# gedit development/tools/emulator/opengl/host/renderer/Android.mk

添加一行:LOCAL_LDLIBS += -lX11 注意最好是复制过去,右边的容易写错

时间: 2024-07-31 06:01:10

在Ubuntu14.04上编译Android4.0.1出现的几个问题的相关文章

【转】Linux(ubuntu14.04)上编译Android4.4源码的环境搭建及编译全过程

原文网址:http://jileniao.net/linux-android-building.html sublime text让我伤心.本来很信任sublime text的自动保存功能,之前使用一直很给力的,但这次让我伤心欲绝啊. 关于Linux(ubuntu14.04)上编译Android源码的环境搭建详细过程都是在sublime text中编辑好的,无奈,这次的数据丢失让我不得不重新来回想手打一次了.可能很多细节问题,这次重新编辑文章时不会记得那么清晰了,还请有问题的朋友在下面留言给我就

在ubuntu14.04上编译android4.2.2系统

原创作品,转载请注明出处,严禁非法转载             copyright:weishusheng   2015.8.1 时下android系统非常流行,下面就来说一下,下载编译一个android系统的过程.此处仅是我个人开发过程的总结和记录,想获取更详细资料,可参考官方文档. 环境: 电脑:Lenovo 32位  2G内存(编译android明显不够,后面会说到如何增加swap存储容量) 主机:VMware10.0.0+ubuntu14.04 android版本:android4.2.

ubuntu14.10上编译Android5.0.2源码

2015年04月14日 Android 暂无评论 阅读2064次ubuntu14.10上编译Android5.0.2源码 前面一篇文章说到了ubuntu14.10上Android5.0.2源码下载的具体步骤,这篇文章说的是ubuntu14.10上编译Android5.0.2源码的那些事. 1.先安装jdk 这里我使用的是openjdk,网上很多人关于jdk到底使用jdk5.jdk6.jdk7还是openjdk一直在争论不休,我选择的是openjdk7,最终证明是可以编译通过的. sudo apt

在Ubuntu Server14.04上编译Android6.0源码

此前编译过Android4.4的源码,但是现在Android都到了7.0的版本,不禁让我感叹Google的步伐真心难跟上,趁这周周末时间比较充裕,于是在过去的24小时里,毅然花了9个小时编译了一把Android6.0的源码,但是昨天编译完之后已经很晚了,没来得及记录编译的步骤,今天才慢悠悠地来记录一下我在Ubuntu Server14.04上编译Android6.0源码的步骤.好了,废话不多说,我们开始吧! 步骤一: 安装Ubuntu系统.我们既可以通过虚拟机的方式安装Ubuntu,也可以直接在

ubuntu14.04上编译安装python3.7.3

首先先去python官网www.python.org下载python3.7.3的官方压缩包Python-3.7.3.tgz 一.先安装需要的包zlib1g,libffi apt-get update apt-get install zlib1g-dev apt-get install libffi-dev 二.在ubuntu上创建/usr/local/python3.7的目录,将压缩包放到该目录 mkdir -p /usr/local/python3.7 把压缩包放进去 cd /usr/loca

Ubuntu12.04系统编译Android4.4源码

系统环境 系统:Ubuntu12.04 64位系统. 源码:Android4.4源码. 选择Ubuntu12.04,是因为在14.04上没能折腾成功,在上面兼容32位程序的配置有点烦.12.04必须要用64位的,编译Android4.4时需要64位环境,同时要兼容32位程序,折腾. 步骤 配置jdk6 Android官方给的步骤是用OpenJdk,实测是不行的.网上找到https://jdk6.java.net/download.html 这个网址有需要的jdk,下载自解压安装包.自解压后在当前

Ubuntu14.04 Chromium 编译

1.下载depot_tools: 首先安装 git-core: sudo apt-get install git-core 执行命令: git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 2.更新depot_tools: 直接在当前shell环境输入: export PATH="$PATH:depot_tools_dir/depot_tools"; 或加如系统环境变量: vim ~/.ba

ubuntu12.04编译android4.0源代码Deug3

make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] 错误 1 这个报错网上统一的解决方法都是安装sudo apt-get install libncurses5-dev 但是我屡次卸载安装重启clean编译还是报错,最后才焕然大悟  make报错是linux-86的错 就是32位ubutun的错 因此要安装64位的libncurses5-dev  即 sudo apt-get install lib32ncur

ubuntu12.04编译android4.0源代码Deug1

ubuntu12.04编译a10全志芯片make多次编译无果,逐句检查发现缺少多种文件解析.遂百度如下 $sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dri:i386 libgl1-mesa-dev