Сборка Jenkins для Android не удалась - не могу собрать libwebviewchromium.so - PullRequest
0 голосов
/ 12 декабря 2018

Нужен небольшой совет или идея.

Я пытаюсь собрать Android 5.1.1 Lollipop с Jenkins.Но он не в состоянии собрать libwebviewchromium.so:

...
out/target/product/generic/obj/GYP/shared_intermediates/blink/bindings/core/v8/V8SVGNumber.cpp:55: error: undefined reference to 'blink::SVGNumberTearOff::setValue(float, blink::ExceptionState&)'
out/target/product/generic/obj/STATIC_LIBRARIES/third_party_WebKit_Source_core_webcore_generated_gyp_intermediates/SVGElementFactory.cpp:383: error: undefined reference to 'blink::SVGMetadataElement::create(blink::Document&)'
external/chromium_org/third_party/WebKit/Source/core/svg/SVGNumberTearOff.h:45: error: undefined reference to 'blink::SVGNumberTearOff::SVGNumberTearOff(WTF::PassRefPtr<blink::SVGNumber>, blink::SVGElement*, blink::PropertyIsAnimValType, blink::QualifiedName const&)'
collect2: error: ld returned 1 exit status
make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libwebviewchromium_intermediates/LINKED/libwebviewchromium.so] Error 1

В то же время, когда я пытаюсь собрать его вручную, это удается:

. build/envsetup.sh
set_stuff_for_environment
lunch zh2_qemu_eng
make clean
make -j24

Интересно, как получается, чтота же операция может быть успешной при использовании консоли и неудачной при использовании Jenkins.Не могли бы вы поделиться своими идеями со мной?

PS Сборочный компьютер имеет 24 ГБ ОЗУ и 15 ГБ подкачки, а также флэш-диск на 512 ГБ SSD (доступно 62%).Операционная система Ubuntu 14.04LTS, 64-разрядная.

$ free -m
             total       used       free     shared    buffers     cached
Mem:         24021      22079       1942         75       4778       8768
-/+ buffers/cache:       8532      15488
Swap:        16036        345      15691

Ответы [ 4 ]

0 голосов
/ 18 января 2019

Проблема решена.Мы скопировали настройку Jenkins / AOSP с другого сервера, и что-то не так с копией.Очистка ccache решила проблему.После выполнения команды "ccache -c" все работало нормально.

0 голосов
/ 27 декабря 2018

пользователь jenkins имеет свой собственный ~/.bashrc, в котором могут отсутствовать переменные среды.

временно включить оболочку входа в систему для jenkins, настроить среду, затем отключить ее снова.

при возможности ручной сборки как пользователь jenkins, он также должен собираться при автоматизации.

0 голосов
/ 03 января 2019

Убедитесь, что все заголовочные файлы включены в библиотеки и , связанные на момент компиляции. Неопределенная ссылка Ошибки в основном возникают из-за этих двух причин.

0 голосов
/ 27 декабря 2018

Интересно, как получается, что одна и та же операция может быть успешной при использовании консоли и завершиться неудачей при использовании Jenkins.

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

Дважды проверьте, есть ли различия в переменных среды между:

  • вашей командной строкой, где вы можете успешновыполните вашу команду (введите env после ваших команд)
  • переменные окружения , которые вы можете увидеть с вашей (неудачной) работой

Например,LD_LIBRARY_PATH Разница может объяснить несоответствие между двумя сборками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...