Ошибка при сборке WebRT C для android в Ubuntu - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь собрать WebRT C для Android в Ubuntu 16.04. Я выполнил шаги, упомянутые в: https://medium.com/@abdularis / how-to-compile-native-webrt c -from-source-for- android -d0bac8e4c933 (аналогичные шаги я нашел в другом ссылки также)

Я проверил версию: Branch-Heads / M79

Я получаю следующую ошибку при построении кода с помощью команды: 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"', я получу следующую ошибку:

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

Как я могу исправить эту ошибку? Есть ли какой-то шаг, который я пропустил?

Ответы [ 2 ]

3 голосов
/ 20 апреля 2020

Я застрял с теми же проблемами. При работе со следующими командами убедитесь, что вы используете ту же (only-1) вкладку Linux терминал для WebRT C Native Development.

Прежде всего, убедитесь, что вы уже установили следующее, если нет, то используйте для этого следующие команды:

 - 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

После этого запустите следующие шаги один за другим. Каждый шаг занимает свое время в зависимости от характеристик машины и inte rnet скорость , поэтому убедитесь, что каждый шаг выполняется без перерыва.

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

Оказывается, что вы закончите с компиляцией и сборкой libwebrtc.aar в каталоге webrtc_android/src/.

Теперь, если вы уже завершили Задача step-7 с помощью branch-heads/m79, затем
выберите branch из origin/master вместо m79. Для этого попробуйте выполнить следующие действия:

Убедитесь, что вы находитесь в этом каталоге 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.


Теперь, если вы попытались с помощью обеих этих процедур для построения WebRT C, таких как:

1- Использование инструментов сборки AAR (./tools_webrtc/android/build_aar.py)

2- Использование компиляции вручную (gn gen out/Debug --args='target_os="android" target_cpu="arm"')

2.1- Компиляция (ninja -C out/Debug)

Обе процедуры будут работать.


0 голосов
/ 11 марта 2020

Это может занять несколько попыток, но запуск gclient sync несколько раз помог мне.

Получение всех файлов может занять очень много времени, и если оно прервано, оно не получит их.

...