基于linux Webrtc Android 版本源码下载、编译以及遇到的相关问题

各环境工具版本

虚拟机:VMWave 12.5.9
Ubuntu: Ubuntu 16.04.7 LTS
WebRtc: M72

源码下载

1、由于webrtc 源码在 墙外,所以需要科学上网(自行解决)。当然现在webrtc 有国内的镜像地址:https://webrtc.org.cn/mirror 内附编译下载教程自行查阅,由于个人项目需要M72 版本,所以需要科学上网。

2、在linux上安装git(version 2.7.4)
yum -y install git

3、下载depot_tools,然后添加环境变量
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=pwd/depot_tools:"$PATH"

4、下载webrtc_android 源码 创建文件夹
$ mkdir webrtc_android
$ cd webrtc_android

获取源码
$ export GYP_DEFINES=“OS=android”
$ fetch --nohooks webrtc_android
$ gclient sync

将分支定位到m72
$ cd src
$ git checkout -b m72 refs/remotes/branch-heads/72
$ cd …
$ gclient sync

编译

1、使用gn生成需要的架构屏幕文件夹:
生成ARM版:
gn gen out/Default --args=‘target_os=“android” target_cpu=“arm”’
生成ARM64版:
gn gen out/Default --args=‘target_os=“android” target_cpu=“arm64”’

2、编译源码
ninja -C out/Default

3、得到编译结果文件
jar包:out/Default/lib.java/sdk/android/libwebrtc.jar
so文件:out/Default/libjingle_peerconnection_so.so

下载编译过程中遇到的相关问题

1、无法解压tar 包:
现象:tar (child): xz: Cannot exec: No such file or directory tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error is not recoverable: exiting now

解决办法:sudo apt install xz-utils

2、python 版本过低编译报错
现象:
File “…/…/build/android/gyp/turbine.py”, line 15, in import javac_output_processor File “/webrtc/src/build/android/gyp/javac_output_processor.py”, line 23, in import lookup_dep File “…/…/tools/android/modularization/convenience/lookup_dep.py”, line 67 abs_out_dir: pathlib.Path = pathlib.Path( ^ SyntaxError: invalid syntax)

解决办法:升级python 3.5到 3.7及以上

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐