Реактивно-родной андроид NDK

Приложение среднего встроенного Player (C ++) сборки с версией NDK 13b и использует сборку libgnustl-shared.so с ним. React native использует другую версию NDK, и libgnustl-shared.so поставляется с ней (версия NDK 10e) конфликтует с той, которую я использую для своих библиотек промежуточного программного обеспечения. Есть ли способ, которым я могу решить это? lib, используемая для приложения, не принимается реагирующей нативной библиотекой и не основана на моих библиотеках связующего программного обеспечения. Я не могу понизить на NDK, используемый для моего родного приложения (до 10е поддерживается для реагировать родной). Любая помощь приветствуется.

0

Решение

Самый правильный способ — использовать одну и ту же версию библиотеки во всем приложении. Но если это невозможно — вы можете связать один модуль со статической версией библиотеки, оставив второй, как обычно, с общей.

Но такой подход — скорее обходной путь, чем реальное решение. Потому что есть как минимум следующие недостатки:

  • размер приложения увеличивается, потому что теперь вы развертываете код для двух версий библиотеки вместо одной
  • объекты одного и того же класса в разных версиях библиотеки могут быть двоичными несовместимыми — поэтому, если вы попытаетесь передать объекты c ++ между кодом, который опирается на другую версию lib — это приводит к неопределенному поведению.

В конце: я бы дважды подумал, не существует ли способа использовать одну и ту же версию везде.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]