1、UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 685: ordinal not in range(128)
Traceback (most recent call last):
File "/usr/lib/python3.6/multiprocessing/pool.py", line 120, in worker
result = (True, func(*args, **kwds))
File "/usr/lib/python3.6/multiprocessing/pool.py", line 45, in mapstar
return list(map(*args))
File "../../build/android/gyp/compile_java.py", line 258, in _ProcessJavaFileForInfo
package_name, class_names = _ParsePackageAndClassNames(java_file)
File "../../build/android/gyp/compile_java.py", line 239, in _ParsePackageAndClassNames
for l in f:
File "/usr/lib/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 685: ordinal not in range(128)
这是因为python 用ascii 解析java 文件报错,webrtc java 默认是ascii 编码,我的情况是源码注释有中文,注释掉就没了,不过我另一个环境中文注释没有这种问题。。。。
在 src/build/android/gyp/compile_java.py,加一句打印可以清楚看到哪个文件出错
def _ParsePackageAndClassNames(java_file):
package_name = ''
class_names = []
print ("---current file:" + java_file)
2、警告当做错误
添加 treat_warnings_as_errors=false 选项
tools_webrtc/android/build_aar.py --build-dir=temp --arch=arm64-v8a --extra-gn-args="treat_warnings_as_errors=false"
3、a bytes-like object is required, not 'str'
执行java --version,看下java 版本是不是java 1.8,确保版本是1.8
4、no module call dataclasses
pip3 install dataclasses (python3)
pip install dataclasses (python2)
执行上述命令安装dataclasses模块