在Ubuntu上为Android构建WebRTC时出错 [英] Error while building WebRTC for android on Ubuntu

查看:310
本文介绍了在Ubuntu上为Android构建WebRTC时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在Ubuntu 16.04上为Android构建WebRTC.我已按照以下步骤进行操作: https://medium.com/@ abdularis/how-to-to-compile-native-webrtc-from-source-for-android-d0bac8e4c933 (我在其他链接中也找到了类似的步骤)

I am trying to build WebRTC for Android on Ubuntu 16.04. I have followed the steps mentioned at: https://medium.com/@abdularis/how-to-compile-native-webrtc-from-source-for-android-d0bac8e4c933 ( I found similar steps in the other links also)

我签出了以下版本: branch-heads/m79

使用命令构建代码时出现以下错误: python tools_webrtc/android/build_aar.py

I am getting the following error while building the code with the command: python tools_webrtc/android/build_aar.py

ERROR at //build/config/android/internal_rules.gni:3051:7: Assertion failed.
      assert(_is_annotation_processor || _is_java_binary || _has_sources)
      ^-----
See //build/config/android/rules.gni:1489:5: whence it was called.
    java_library_impl(target_name) {
    ^-------------------------------
See //build/config/android/rules.gni:1844:5: whence it was called.
    java_library(target_name) {
    ^--------------------------
See //webrtc.gni:850:5: whence it was called.
    android_library(target_name) {
    ^-----------------------------
See //rtc_base/BUILD.gn:1359:3: whence it was called.
  rtc_android_library("base_java") {
  ^---------------------------------
See //BUILD.gn:423:7: which caused the file to be included.
      "rtc_base",
      ^---------
Traceback (most recent call last):
  File "build_aar.py", line 234, in <module>
    sys.exit(main())
  File "build_aar.py", line 230, in main
    args.build_dir, args.extra_gn_switches, args.extra_ninja_switches)
  File "build_aar.py", line 210, in BuildAar
    extra_ninja_switches)
  File "build_aar.py", line 166, in Build
    _RunGN(gn_args_list)
  File "build_aar.py", line 93, in _RunGN
    subprocess.check_call(cmd)
  File "/usr/lib/python2.7/subprocess.py", line 541, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/python', '/home/architsinha/work/WebRTC_Android/src/third_party/depot_tools/gn.py', 'gen', '/tmp/tmpuxZSnM/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

如果我通过运行命令尝试其他方法 gn gen out/Debug --args ='target_os ="android" target_cpu ="arm"'我收到以下错误:

If I try the other method by running the command gn gen out/Debug --args='target_os="android" target_cpu="arm"' I get the following error:

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") {
    ^------------------------------------

如何解决此错误?我错过了一些步骤吗?

How can I fix this error? Is there some step which I have missed?

推荐答案

我也遇到了同样的问题.使用以下命令时,请确保您使用的是 Linux终端的相同( only-1 )选项卡进行WebRTC本机开发.

I was stuck with the same issues. While working on the following commands make sure you're using the same(only-1) tab of Linux terminal for WebRTC Native Development.

首先,请确保已安装以下内容,否则请使用以下命令进行操作:

First of all, make sure of the following things that you have already installed, if not then use these commands to do that:

 - sudo add-apt-repository ppa:openjdk-r/ppa
 - sudo apt-get install openjdk-8-jdk
 - sudo apt-get install pkg-config
 - sudo apt-get update


此后,请依次开始以下步骤.每个步骤都会根据机器规格互联网速度花费自己的时间,因此请确保每个步骤都完整无间断地完成.


After that, start these following steps one by one. Every step takes its own time based on the machine specs and internet speed, so make sure every step is completed without interruption.

1- git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

2- export PATH="$PATH:${HOME}/depot_tools"

3- mkdir webrtc_android

3.1- cd webrtc_android

4- fetch --nohooks webrtc_android

5- gclient sync

6- cd src/

7- ./build/install-build-deps.sh

8- git branch -r

9- git checkout origin/master

# To check you're in origin/master branch
10- git branch

11- tools_webrtc/android/build_aar.py


事实证明,您将最终在 webrtc_android/src/目录中编译和构建 libwebrtc.aar .

现在,如果您已经使用 branch-heads/m79 完成了 step-7 的任务,那么
选择 origin/master branch ,而不是 m79 .为此,请尝试以下步骤:

Now, If you have already completed your task to step-7 with the branch-heads/m79, then
select the branch of origin/master instead of m79. To do that try these following steps:

确保您在此目录中 webrtc_android/src/:

 - git checkout origin/master
 # To make sure you're using origin/master
 - git branch
 - gclient revert
 - gclient sync
 - tools_webrtc/android/build_aar.py

希望您会解决您的问题.当前,您正在检出 origin/master 后面的分支,并且那里没有构建 libwebrtc.aar 所必需的所有依赖项和模块.

And hopefully, you will have your issues sorted. Currently, You are checking out a branch that is behind the origin/master and doesn't have all dependencies and modules over there which are necessary to build your libwebrtc.aar.

现在,如果您尝试使用这两个过程来构建WebRTC,例如:

Now, if you tried with these both procedures to build the WebRTC such as:

1-使用AAR生成工具( ./tools_webrtc/android/build_aar.py )

1- Using AAR Build Tools (./tools_webrtc/android/build_aar.py)

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

2- Using Manual Compilation (gn gen out/Debug --args='target_os="android" target_cpu="arm"')

2.1-编译( ninja -C out/Debug )

这两个过程都将起作用.

Both procedures will work.

这篇关于在Ubuntu上为Android构建WebRTC时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆