При включении ACRCloud Native Lib мои собственные сбои Native Lib

У меня есть приложение для Android, которое использует NDK. В моем коде C++ у меня есть вызов std::use_facet(). Само по себе мое приложение работает нормально, однако, когда я добавляю ACRCloud SDK, при запуске приложения происходит сбой:

Build fingerprint: 'google/taimen/taimen:9/PPR2.180905.005/4928864:user/release-keys'
2018-10-17 14:48:36.357 2938-2938/? A/DEBUG: Revision: 'rev_10'
2018-10-17 14:48:36.357 2938-2938/? A/DEBUG: ABI: 'arm'
2018-10-17 14:48:36.357 2938-2938/? A/DEBUG: pid: 2915, tid: 2915, name: .app  >>> com.mycompany.android.app <<<
2018-10-17 14:48:36.357 2938-2938/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
2018-10-17 14:48:36.357 2938-2938/? A/DEBUG: Cause: null pointer dereference
2018-10-17 14:48:36.357 2938-2938/? A/DEBUG:     r0  00000000  r1  00000043  r2  d5b21700  r3  00000000
2018-10-17 14:48:36.357 2938-2938/? A/DEBUG:     r4  ffd1a974  r5  ebd856ac  r6  ebd856ac  r7  d551c3a4
2018-10-17 14:48:36.357 2938-2938/? A/DEBUG:     r8  d3acfae8  r9  f45842c0  r10 00000143  r11 ffd1a9b4
2018-10-17 14:48:36.357 2938-2938/? A/DEBUG:     ip  00000000  sp  ffd1a948  lr  d473ae40  pc  d473ae54
2018-10-17 14:48:36.550 2938-2938/? A/DEBUG: backtrace:
2018-10-17 14:48:36.550 2938-2938/? A/DEBUG:     #00 pc 03e2fe54  /data/app/com.mycompany.android.app-APqEWGjyWJxWwxYs8NNiHA==/lib/arm/libMyApp.so (std::ctype<char> const& std::use_facet<std::ctype<char>>(std::locale const&)+40)
2018-10-17 14:48:36.550 2938-2938/? A/DEBUG:     #01 pc 023ee45c  /data/app/com.mycompany.android.app-APqEWGjyWJxWwxYs8NNiHA==/lib/arm/libMyApp.so (_ZNSt8__detail9_CompilerISt12regex_traitsIcEEC1EPKcS5_RKS2_NSt15regex_constants18syntax_option_typeE+232)
2018-10-17 14:48:36.550 2938-2938/? A/DEBUG:     #02 pc 023eb19c  /data/app/com.mycompany.android.app-APqEWGjyWJxWwxYs8NNiHA==/lib/arm/libMyApp.so (_ZNSt8__detail13__compile_nfaISt12regex_traitsIcEEESt10shared_ptrINS_4_NFAIT_EEEPKNS5_9char_typeESA_RKS5_NSt15regex_constants18syntax_option_typeE+80)
2018-10-17 14:48:36.550 2938-2938/? A/DEBUG:     #03 pc 023e8d28  /data/app/com.mycompany.android.app-APqEWGjyWJxWwxYs8NNiHA==/lib/arm/libMyApp.so (_ZNSt11basic_regexIcSt12regex_traitsIcEEC2IPKcEET_S6_NSt15regex_constants18syntax_option_typeE+240)

Сбой обнаруживается в моей родной библиотеке, но я полагаю, что это связано с тем, что библиотека ACRCloud находится там, что и является причиной этого.

Обратите внимание, что в момент сбоя еще не запущен код, который создает экземпляр ACRCloud SDK.

У меня такое ощущение, что ACRCloud также где-то использует тот же вызов метода, std::use_facet(), и во время компиляции вместо меня вводятся символы из ACRCloud, что вызывает конфликт.

Возможно, кто-то в ACRCloud может вмешаться.

2 ответа

Решение

Оказывается, мои настройки сборки были неверными. Я использую Bazel для сборки всего, и я обращался к библиотеке ACRCloud, используя правило cc_library, а не то, что должно было быть: filegroup.

Я думаю, что когда я использовал правило cc_library, во время компиляции что-то изменялось, и это приводило к моей ошибке; тогда как, если я импортирую его через файловую группу, артефакт будет просто введен без какого-либо касания.

Этот сбой вызван "/lib/arm/libMyApp.so". Это может быть ваша собственная библиотека. ACRCloud SDK не содержит эту библиотеку.

Другие вопросы по тегам