转自:http://blog.csdn.net/thl789/article/details/7524232
本文解决公用IP(外网IP有限,经常发生在公司网络环境或虚拟机上)的机器下载Android源代码遇到的问题。
注意本文只针对当前从android.googlesource.com下载源码时遇到的问题,因为网络和后续Android源码维护升级等因素,有时效性,并不能保证以后一定还起作用。
利用五一假期期间,用家里的网络要把Android2.3,4.0都下载下来。但操作起来还真有遇到了问题。
之前Android的代码是在Linux kernel(android.git.kernel.org)管理,被Kernel踢出来之后,Android源码现在直接由Google(android.googlesource.com)管理。
用repo/git下载源码时,执行
$repoinit-uhttps://android.googlesource.com/platform/manifest-bandroid-4.0.4_r1.2
报错:
Exception in thread Thread-3:
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "/usr/lib/python2.6/threading.py", line 484, in run
self.__target(*self.__args, **self.__kwargs)
File "/home/haili/android-4.0.4_r1.2/.repo/repo/subcmds/sync.py", line 200, in _FetchHelper
clone_bundle=not opt.no_clone_bundle)
File "/home/haili/android-4.0.4_r1.2/.repo/repo/project.py", line 978, in Sync_NetworkHalf
and self._ApplyCloneBundle(initial=is_new, quiet=quiet):
File "/home/haili/android-4.0.4_r1.2/.repo/repo/project.py", line 1519, in _ApplyCloneBundle
exist_dst = self._FetchBundle(bundle_url, bundle_tmp, bundle_dst, quiet)
File "/home/haili/android-4.0.4_r1.2/.repo/repo/project.py", line 1583, in _FetchBundle
raise DownloadError('%s: %s ' % (req.get_host(), str(e)))
DownloadError: android.googlesource.com: <urlopen error [Errno 110] Connection timed out>
...
看这出错很莫名,Python是正确安装了的,版本也是要求的。其实官网(http://source.android.com/source/downloading.html)有段说明,如果认真执行就可解决。
1. 浏览器登录https://android.googlesource.com/new-password,并用gmail帐号登录;
2. 点击网页上的“允许访问”,得到类似:
machine android.googlesource.com login git-<userName>.gmail.com password <password>
machine android-review.googlesource.com login git-<userName>.gmail.com password <password>
的信息。
3. 把上面那段信息(<userName>和<password>用自己得到的真实信息)追加到~/.netrc文件结尾;
4. 下载地址的URI更改为https://android.googlesource.com/a/platform/manifest(中间加上了“/a”)。
然后按照官网描述的正常步骤操作,即可拉下Android源码。
官方的说法是:因为访问基本是匿名的,为了防止连接过多,对同一IP地址的连接数做了一定的限制。看来是用gmail帐号进行认证。
这样的话,在公司网络内或者用虚拟机下载的话,会经常遇到这问题。
分享到:
相关推荐
### 解决公用IP下载Android源码时遇到的问题 在IT领域,尤其是对于从事移动操作系统开发的工程师来说,下载并编译Android源码是一项常见的任务。然而,在特定的网络环境下(如公司内部网络或使用虚拟机),下载过程...
本篇文章将聚焦于“Android源码下载出现问题”这一主题,探讨在尝试下载Android源码时可能遇到的常见问题及其解决方案。 首先,下载Android源码主要依赖于Google的repo工具,它是一个版本控制系统,用于管理和同步...
提供的简书文章(https://www.jianshu.com/p/a60d8024c331)可能会进一步解释下载过程中的细节,包括遇到的问题和解决方案,以及可能的优化技巧。 下载和编译Android源码是一项复杂的任务,需要耐心和一定的技术...
### 最新Android源码下载方法详解 随着移动设备市场的飞速发展,Android系统因其开源性和灵活性而备受开发者青睐。为了更好地研究和定制Android系统,掌握正确的Android源码下载方法至关重要。本文将详细介绍一种新...
- 在Windows下编译Android源码可能会遇到一些问题,如路径长度限制。可以通过调整Windows设置或使用短路径模式来解决。 - 确保所有的依赖库和工具都是最新且兼容的。 总结来说,下载Android源码需要安装必要的...
"下载Android源码的python脚本"提供了便捷的方式,使得开发者能够轻松地通过Python来自动化这一过程。下面将详细介绍这个脚本及其相关文件的工作原理和用途。 首先,`download_android_source_code.py` 是核心脚本...
### 使用Android Studio查看Android Lollipop源码 #### 概述 随着Android Lollipop(即Android 5.0)的发布,...此外,遇到问题时,可以参考在线社区如Google官方论坛或Stack Overflow上的相关讨论来寻找解决方案。
总的来说,利用国内提供的Android源码及SDK镜像服务,不仅可以提高下载速度,还可以减少因网络不稳定导致的下载失败等问题。这对于国内的Android开发者而言是非常重要的支持。清华大学提供的AOSP镜像以及东北大学...
1. 解决问题:遇到系统级问题时,源码是查找问题根源的直接途径。 2. 性能优化:理解底层运行机制,有助于优化代码,提高应用性能。 3. 扩展功能:根据源码,开发者可以自定义系统组件,实现特定功能。 4. 职业发展...
在Android开发过程中,深入理解Android源码是提升技术能力的重要步骤。Android Studio(简称AS)作为官方推荐的IDE,提供了方便的源码阅读和调试功能。本文将详细讲解如何使用AS来读取和理解Android源码,以及配置...
- **源码下载**:获取Android源码通常是通过官方仓库,如GitHub,需要一定的网络条件和存储空间。 - **代码理解**:阅读源码需要一定的编程基础,特别是对Java和C/C++的理解,因为Android系统是用这两种语言编写的。...
这个文件可能包含了关于如何下载、配置环境、编译源码的详细步骤,以及可能遇到的问题和解决方案。对于初次接触Android源码的开发者来说,这是一个非常宝贵的资源。 总结,Android 2.2源码的学习和研究不仅有助于...
掌握Android源码有助于开发者解决性能问题、调试应用、编写系统级服务,甚至创建自定义ROM。然而,这是一个庞大的项目,需要投入大量的时间和精力去学习和理解。对于想要深入研究Android系统的开发者,这个"安卓...
### Ubuntu10.10(64位)编译Android2.3源码遇到的问题及解决方案 #### 一、概述 在使用Ubuntu10.10(64位)操作系统尝试编译Android2.3源码的过程中,遇到了一系列错误。这些问题主要与缺少必要的库文件和支持工具...
通过研究这个项目,开发者不仅可以提升自己的编码能力,还能理解实际项目中遇到的问题和解决策略,对提升个人技能和理解Android生态系统有极大的帮助。无论是初学者还是有经验的开发者,都能从中受益匪浅。
2. **调试系统级问题**:当遇到难以解决的应用程序崩溃等问题时,可以通过源码找到原因。 3. **定制系统**:根据需求定制自己的Android系统版本,例如去除不必要的功能、添加新的特性等。 4. **开发驱动程序**:对于...
在实践中,你可能还会遇到性能优化、适配不同屏幕尺寸和方向、支持多种语言等问题,这些都是进一步提升输入法体验的关键点。 总的来说,"android 全键盘输入法源码"的学习涵盖了Android系统服务、UI设计、事件处理...
通过学习和分析这份最新的Android Framework源码,开发者不仅可以提升对Android系统底层机制的理解,还能在遇到问题时更快速地定位和解决问题,从而提高软件开发的效率和质量。同时,这也为定制Android系统、优化...