首页 > 技术文章 > 【转】同步android 4.3源码时提示UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0:的解决方法

wpy23tl 2013-09-30 00:15 原文

经本人测试有效

本文来自:http://blog.csdn.net/syhost/article/details/12035249

最近在编译泛泰A850L的android 4.3时遇到奇怪的问题,更新repo到1.20版本后再同步android 4.3源码,都同步不了,无论是AOKP,slim,PAC还是AOSP都提示同样的错误:

 

  1. Get https://github.com/AOKP/platform_manifest.git  
  2. Traceback (most recent call last):  
  3.   File "/home/android/AOKP_4.3/.repo/repo/main.py", line 418in <module>  
  4.     _Main(sys.argv[1:])  
  5.   File "/home/android/AOKP_4.3/.repo/repo/main.py", line 394in _Main  
  6.     result = repo._Run(argv) or 0  
  7.   File "/home/android/AOKP_4.3/.repo/repo/main.py", line 142in _Run  
  8.     result = cmd.Execute(copts, cargs)  
  9.   File "/home/android/AOKP_4.3/.repo/repo/subcmds/init.py", line 369in Execute  
  10.     self._SyncManifest(opt)  
  11.   File "/home/android/AOKP_4.3/.repo/repo/subcmds/init.py", line 159in _SyncManifest  
  12.     m._InitGitDir(mirror_git=mirrored_manifest_git)  
  13.   File "/home/android/AOKP_4.3/.repo/repo/project.py", line 1904in _InitGitDir  
  14.     self.bare_git.init()  
  15.   File "/home/android/AOKP_4.3/.repo/repo/project.py", line 2272in runner  
  16.     r = r.decode()  
  17. UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)  


看样子像是系统编码的问题,想起这是新安装的ubuntu 13.04, 安装时默认语言选的都是中文,貌似以前安装时都是选的英文安装好后再选中文。

 

google找到一篇类似情形:

http://stackoverflow.com/questions/18049320/repo-init-unicodedecodeerror-on-ubuntu-13-04

 

然后开始以为是repo版本问题,照着上面文章修改repo问题依然没解决,然后仔细阅读上面帖子,找到.repo/repo/project.py 第2272行 将原来的:

r = r.decode()

改为

r = r.decode(sys.getfilesystemencoding())

然后删除.repo/manifests.git

再重新repo init,问题解决!

推荐阅读