Используя android-gradle и maven, есть ли чистый способ связать две нативные библиотеки, когда одна зависит от другой? - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть проект Gradle, который публикует библиотеку Android на моем сервере maven (я буду называть это проектом A).Библиотека упакована как .aar, но содержит только собственные файлы .so.Структура выглядит следующим образом:

libraryA.aar
 |  
 +-- jni
 |  |  
 |  +-- arm64-v8a
 |  |   |  
 |  |   +-- native_lib_A.so
 |  |
 |  +-- armeabi-v7a
 |  |   |  
 |  |   +-- native_lib_A.so

 ...etc

Теперь у меня есть другой проект Android, который создает другую нативную библиотеку C / C ++ (я буду называть это проектом B).B зависит от библиотеки A.

Из build.gradle проекта B я могу легко получить библиотеку A с моего сервера maven, например:

dependencies {
    implementation 'com.example:libraryA:1.0.0'
}

Однако я не могу найти ни одногопростой чистый способ связать файлы .so из готовой библиотеки A с библиотекой B.

Лучшее, что я могу сделать, - это написать грязную задачу Gradle, чтобы разархивировать файл aar и скопировать файлы .so в другое место.файл библиотеки этой библиотеки B (или CmakeList) может использовать.Мне также пришлось написать грязную задачу Gradle в проекте A, чтобы вставить заголовочные файлы в aar в каком-то нестандартном месте, чтобы проект B мог их использовать.

Итак, я хотел бы знать, есть ли является лучшим способом разрешения собственных зависимостей Android, когда одна встроенная библиотека зависит от другой предварительно созданной встроенной библиотеки, которая упакована как .aar и опубликована на сервере Maven?

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