天天看點

編譯安卓源碼提示:TypeError: argument should be integer or bytes-like object, not ‘str‘

編譯安卓源碼的時候,需要搭建環境。經過千辛萬苦,終于解決了之前的一些依賴庫、swap分區的等系列錯誤之後,編譯終于可以看到successfully

然而,在最後,還是出現了以下報錯。等了幾個小時,終于編完了,在最後的 .py 腳本執行打包的時候竟然 Failed了。

百度搜了很多,都是說python腳本内部的問題,顯然,在安卓源碼編譯裡,不是腳本中的代碼問題,因為同僚的可以編譯通過啊。那隻能是我電腦環境的問題了

build_image.py - INFO    : The tree size of /tmp/tmpq_cyvp47 is 988 MB.
Traceback (most recent call last):
  File "./build/tools/releasetools/merge_target_files.py", line 1014, in <module>
    main()
  File "./build/tools/releasetools/merge_target_files.py", line 996, in main
    call_func_with_temp_dir(
  File "./build/tools/releasetools/merge_target_files.py", line 893, in call_func_with_temp_dir
    func(temp_dir)
  File "./build/tools/releasetools/merge_target_files.py", line 997, in <lambda>
    lambda temp_dir: merge_target_files(
  File "./build/tools/releasetools/merge_target_files.py", line 775, in merge_target_files
    add_img_to_target_files.main(add_img_args)
 
    inodes = output.count('\n')
TypeError: argument should be integer or bytes-like object, not 'str'
           

這個是執行到.py報錯,基本上問題就在這裡了。

$ python3 --version
3.8.10
           

查詢我電腦環境(我沒有伺服器...電腦賊慢) 3.8.10。這個問題不大。

再執行以下

python --version
           

發現沒有。我電腦沒有安裝到python 2

倒也簡單,我用的是Ubuntu20.04,也就一句指令行的事情

sudo apt install python2.7
           

等待執行完畢之後

再執行 python  --version 還是沒有啥列印啊

原來是要做python 的一個綁定。那就建立一個軟連結嘛

ln -s /usr/bin/python2.7 pyton
           

此時再執行 python --version 就可以看到列印的python版本資訊了。是python2.7  的那就對了。

再執行編譯腳本全編譯試試