如何下载Android的谷歌源代码

时间:2011-08-13 01:16:26

标签: android python windows git android-source

如您所知,https://android.googlesource.com/中列出了数百个项目。我想在windows机器上全部下载它们。根据谷歌的文件,

To install, initialize, and configure Repo:

$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo


To clone the entire platform, install repo, and run:

mkdir mydroid
cd mydroid
repo init -u https://android.googlesource.com/platform/manifest
repo sync

然而,在我的机器中,我不能在Git Bash中“repo init”,因为它说它没有python。我安装了python,但git bash无法识别它。 请注意,我也将python目录设置为系统路径。如果有人可以给出提示,我将不胜感激。感谢

更新:我认为新版Git Bash for Windows存在问题。系统路径根本不适用于Git Bash - 我可以轻松测试系统路径是否与命令提示符一起使用。无论如何,我尝试了这个,当然它实际上运行错误。

  /c/python27/python.exe  ../bin/repo init -u https://android.googlesource.com/platform/manifest

错误消息是

 $ /c/python27/python.exe ../bin/repo init -u https://android.googlesource.com/platform/manifest
 Traceback (most recent call last):
   File "../bin/repo", line 91, in <module>
    import readline
 ImportError: No module named readline

行。我通过在windows中安装pyreadline来传递此错误:

 easy_install pyreadline

如果出现错误,则必须从

安装setuptools
 http://pypi.python.org/pypi/setuptools#files

最后再次运行命令得到这个:

$ repo init -u https://android.googlesource.com/platform/manifest
fatal: unable to start d:\mywork\dev\GoogleAndroid\working_dir\.repo\repo/main.py
fatal: [Errno 8] Exec format error

3 个答案:

答案 0 :(得分:6)

点击一次,从此处下载最新代码.tar.gz文件 https://android.googlesource.com/platform/frameworks/base/+archive/master.tar.gz,可以在core文件夹

下找到android

修改
替代方案:
http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/

只需选择版本,然后选择其中的下载选项。

答案 1 :(得分:1)

作为一个例子,如果你考虑这个other program "sympy"也需要git bash和python,只需要在你的PATH 之前添加python 来启动git bash会话

  

从以下位置安装Python:

http://python.org/download/

  

下载“Python 2.7 Windows安装程序”(或Python 2.6或2.5)并运行它   将python目录添加到系统环境路径变量
  (My Computer -> Advanced -> Environment Variables -> Path -> Edit)。

请注意,repo脚本本身必须位于路径中,如android的Version Control page中所述:

  

Repo是我们在Git之上构建的存储库管理工具。 Repo在必要时统一了许多Git存储库,上传到我们的版本控制系统,并自动执行Android开发工作流程的各个部分。
  Repo并不是要取代Git,只是为了让它更容易在Android环境下使用Git    repo命令是一个可执行的Python脚本,可以放在路径的任何位置

答案 2 :(得分:1)

此答案解释了如何解决此错误:

fatal: unable to start c:\path\.repo\repo/main.py
fatal: [Errno 8] Exec format error

摘要:我最后使用了Cygwin打包的python
详情:以下是完整的故事。

tip from the repo bug tracking是添加'/c/app/Python27/python '

  • 第1.20行第136行 REPO_MAIN = '/c/app/Python27/python ' + S_repo + '/main.py'
  • v1.20中的第735行(函数main的开头)
    wrapper_path = '/c/app/Python27/python ' + os.path.abspath(__file__)

但我们收到错误TypeError: coercing to Unicode: need string or buffer, NoneType found

因此,我将上述更改还原并执行了以下其他更改(版本1.20):

  • 136行,用双反斜杠替换单斜杠:
    REPO_MAIN = S_repo + '\\main.py'
  • 第766行,将python绝对路径添加为me的第一个元素:
        me = ['C:\\app\\Python27\\python.exe', repo_main,
        '--repo-dir=%s' % rel_repo_dir,
        '--wrapper-version=%s' % ver_str,
        '--wrapper-path=%s' % wrapper_path,
        '--']
  • 第776行,由{替换os.execv(repo_main, me) os.execv('C:\\app\\Python27\\python.exe', me)

但是我们仍然会出错:

$ Traceback (most recent call last):
  File "c:\path\.repo\repo\main.py", line 39, in <module>
    from subcmds.version import Version
  File "c:\path\.repo\repo\subcmds\__init__.py", line 36, in <module>
    ['%s' % name])
  File "c:\path\.repo\repo\subcmds\forall.py", line 17, in <module>
    import fcntl
ImportError: No module named fcntl

Python v2.7 fcntl documentation表示fcntl仅适用于平台Unix。

我终于再次恢复repo脚本中的所有更改并安装了Cygwin,包括其pythongit包:它成功作为魅力。

但是,由于MSysGit无法识别由Cygwin模拟的符号链接,我们必须使用Cygwin gitgit之上的GUI不完全符合Cygwin git ...

(另见my other post

编辑:
Cygwin can use native NTFS symlinks(只需设置CYGWIN=winsymlinks:native并成为管理员)。因此可以使用MSysGit和基于它的任何其他GUI: - )