Ubuntu 就自己安装 不建议使用虚拟机。建议单一系统安装。
下载源码:
首先安装git
sudo apt-get install git-core
然后在HOME 目录下创个文件夹BIN 用来存放 repo
mkdir bin
cd bin
curl http://git-repo.googlecode.com/files/repo-1.12> ~/bin/repo
对repo添加权限
chmod a+x repo
添加环境
PATH=$PATH:~/bin
创建一个文件夹存放源码
mkdir ~/workAndroid
cd ~/workAndroid
后面这个步骤比较重要
用浏览器登录https://android.googlesource.com/new-password,并用gmail帐号登录;
点击网页上的“允许访问”,得到类似的结果:
machine android.googlesource.com login git-
machine android-review.googlesource.com login git-
将上边的两行追加到~/.netrc文件结尾。(如果你的linux系统中从来没有建立过此文件,就在home目录下建立.netrc文件,将上面的信息加到新建的文件中去),
下载地址的URI更改为https://android.googlesource.com/a/platform/manifest。
因为访问基本是匿名的,为了防止连接过多,对同一IP地址的连接数做了一定的限制。用gmail帐号进行认证。
在公司网络内或者用虚拟机下载的话,会经常遇到这问题。
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.3_r1
如果出现
fatal: unable to auto-detect email address
那么就在终端输入你的邮箱
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
就像这样
现在你的初始化已经成功了。在 repo sync之前 我建议做这一步
打开.repo/manifest.xml。找到下面一段:
fetch=".." />
修改成
fetch="git://Android.git.linaro.org/"/>
相信我 做了这个步骤下载起来飞快 再也不会乱报错了
如果提示这个地址没有链接 可以尝试使用这个:
fetch="https://android.googlesource.com/" />
OK 找个好时间 开始
repo sync
吧
共勉
编译请看这里Ubuntu 13.04编译Android 4.0
这里是编译部分
我的系统是Ubuntu 13.04 64bit
编译碰到了各式各样的问题 我这里给出一些链接 都是我碰到问题的时候参看的
frameworks/base/include/utils/KeyedVector.h:193:31: 附注: use ‘this->indexOfKey’ instead
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/CrunchCache.o] 错误 1
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/Command.o] 错误 1
第一个问题 解决方式是对gcc 和g++ 降级
1、首先安装gcc4.4和g++4.4
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.42
gcc和g++的降级gcc降级:
sudo rm -rf /usr/bin/gcc
sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
gcc -v
g++降级
sudo rm -rf /usr/bin/g++
sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++
g++ -v
这里会碰到由2个GCC 与G++
host Executable: cmu2nuance (out/host/linux-x86/obj/EXECUTABLES/cmu2nuance_intermediates/cmu2nuance)
/usr/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1
make: *** Waiting for unfinished jobs....
host Executable: coverage (out/host/linux-x86/obj/EXECUTABLES/coverage_intermediates/coverage)
这个问题我也碰到了 安装后解决
安装libncurses5-dev:i386可以解决
sudo apt-get install libncurses5-dev:i386
dalvik/vm/native/dalvik_system_Zygote.cpp: In function ‘int setrlimitsFromArray(ArrayObject*)’:dalvik/vm/native/dalvik_system_Zygote.cpp:199:19: error: aggregate ‘setrlimitsFromArray(ArrayObject*)::rlimit rlim’ has incomplete type and cannot be defined struct rlimit rlim;
dalvik/vm/native/dalvik_system_Zygote.cpp:222:43: error: ‘setrlimit’ was not declared in this scope err = setrlimit(contents[0], &rlim);
make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libdvm_intermediates/native/dalvik_system_Zygote.o] Error 1make: *** Waiting for unfinished jobs....
所以,这个问题只能修改源代码来解决
在dalvik/vm/native/dalvik_system_Zygote.cpp中间增加一个头文件定义#include
#include "Dalvik.h"
#include "native/InternalNativePriv.h"
#include
Android(4.0)编译错误:usr/bin/ld: cannot find libncurses.so.5 cannot find -lGL
$sudo apt-get installlibx11-dev:i386(libX11.so)
$ sudo apt-get installibgl1-mesa-glx:i386(libGL.so)
由于libGL.so系统默认没有进行库路径下的链接,还需要手动链接一下
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
安装这2个解决
基本就是这些问题 中国上GOOGLE比较困难 大家相互帮组吧。
作者:u011111270