linux - 无法为 Android 编译 WebRTC 库

标签 linux build webrtc webrtc-android

我正在尝试编译 WebRTC Native Stack 以构建 libwebrtc.aar 但不幸的是无法理解出了什么问题。


系统信息:

Distributor ID: Ubuntu
Description:    Ubuntu 18.04.4 LTS
Release:        18.04
Codename:       bionic
Java-Version:   OpenJDK-8-JDK
Python-Version: Python 2.7.17

我已按照 official WebRTC Native Development for Android 中提供的完整步骤进行操作.这些步骤在没有任何中断的情况下完成,每一步都需要时间来完成。然后,我必须安装构建源代码所需的所有依赖项。

./build/install-build-deps.sh

在编译代码之前,我还检查了特定的 git 分支以进入不同的可用 WebRTC 版本,以使用此 git 命令列出所有分支。

git branch -r

我正在分享最新的 Git 分支:

enter image description here


我已经尝试了从 branch-heads/60branch-heads/m79 的每个 git 分支,并且在使用编译命令时每个分支都有不同的问题。我已经尝试了这两个程序来构建库,例如:


1- 使用 AAR 构建工具 (./tools_webrtc/android/build_aar.py)

confu@ubuntu:~/webrtc_android/src$ tools_webrtc/android/build_aar.py
INFO:root:Building: armeabi-v7a
ERROR at //webrtc.gni:591:7: Can't load input file.
      absl_include_config,
      ^------------------
Unable to load:
  /home/confu/webrtc_android/src/third_party/abseil-cpp/BUILD.gn
I also checked in the secondary tree for:
  /home/confu/webrtc_android/src/build/secondary/third_party/abseil-cpp/BUILD.gn
Traceback (most recent call last):
  File "tools_webrtc/android/build_aar.py", line 234, in <module>
    sys.exit(main())
  File "tools_webrtc/android/build_aar.py", line 230, in main
    args.build_dir, args.extra_gn_switches, args.extra_ninja_switches)
  File "tools_webrtc/android/build_aar.py", line 210, in BuildAar
    extra_ninja_switches)
  File "tools_webrtc/android/build_aar.py", line 166, in Build
    _RunGN(gn_args_list)
  File "tools_webrtc/android/build_aar.py", line 93, in _RunGN
    subprocess.check_call(cmd)
  File "/usr/lib/python2.7/subprocess.py", line 190, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/python', '/home/confu/webrtc_android/src/third_party/depot_tools/gn.py', 'gen', '/tmp/tmp1JDmHL/armeabi-v7a', '--args=arm_version=7 use_goma=false target_cpu="arm" is_component_build=false is_debug=false rtc_include_tests=false target_os="android"']' returned non-zero exit status 1

2- 使用手动编译 (gn gen out/Debug --args='target_os="android"target_cpu="arm"')

confu@ubuntu:~/webrtc_android/src$ gn gen out/Debug --args='target_os="android" target_cpu="arm64"'
ERROR at //BUILD.gn:648:20: Assignment had no effect.
      java_files = [
                   ^
You set the variable "java_files" here and it was unused before it went
out of scope.
See //BUILD.gn:647:5: whence it was called.
    junit_binary("android_junit_tests") {
    ^------------------------------------

最佳答案

Usman,按照以下步骤,我能够生成有效的 webrtc aar 模块:

 git checkout origin/master
 gclient revert
 gclient sync

您的问题将得到解决。您正在检查原点后面的一个分支,那里没有构建您的 libwebrtc.aar

所需的所有依赖项和模块

关于linux - 无法为 Android 编译 WebRTC 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61318223/

相关文章:

javascript - WebRTC音频仅在语音上激活

linux - Shell脚本密码暴力破解

linux - 在启动时为多个文件启用动态调试

javascript - Websocket : send messages and notifications to all clients except sender

java - Ant 构建失败 : "Target "build. .xml“不存在”

c - 如何将 add_dependency 与 CMake 一起用于非子目录?

javascript - 为什么 WebRTC 仅在第二次提供后才建立连接?

c - 为什么这段代码可以获取到环境变量地址呢?

linux - Git:使用可执行文件

ios - React Native ios 构建错误 'React/RCTBridgeModule.h' 找不到文件