У меня есть проект 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?