Как упаковать библиотеку Prebuild с Prefab в AARAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как упаковать библиотеку Prebuild с Prefab в AAR

Сообщение Anonymous »

Я хочу построить нативную библиотеку Android, которая содержит предварительную плату, например, файлы, например, Librga. И упаковать это в AAR. Этот AAR должен: < /p>

[*] Содержит Librga.so и заголовки. Эта часть будет библиотекой (libmlrga.so), которая зависит от librga.so.
Пользователь может реализовать AAR в Gradle File и find_package в файле cmake, чтобы связать libmlrga.so или librga. Prefab Dir, зависимый Librga.so упакован в JNI Dir, который находится за пределами Prefab Module Dir. Пользователь может получить доступ к заголовкам и libmlrga.so, но не может ссылаться на Librga.so.
Вот моя структура AAR: < /p>
Введите описание изображения здесь < /p>
Есть два libmlrga.so в jni и prefab с различным размером.

Код: Выделить всё

cmake_minimum_required(VERSION 3.22.1)
project(mlrga)

include_directories(./ ./public_headers/)

file(GLOB SRC *.cpp)

add_library(mlrga SHARED ${SRC})

set(librga_path ${CMAKE_CURRENT_LIST_DIR}/../../../jniLibs/${ANDROID_ABI}/librga.so)

message("librga_path: ${librga_path}")
message("CMakeInstallDir: ${CMAKE_INSTALL_PREFIX}")

add_library(rga SHARED IMPORTED)
set_target_properties(
rga PROPERTIES
IMPORTED_LOCATION ${librga_path}
# 关键:禁止AGP自动将其打包到jniLibs
# IMPORTED_NO_SONAME ON
# 声明头文件目录(需与gradle中prefab.rga.headers对应)
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/public_headers
)

target_link_libraries(
mlrga
log
android
rga
)

target_include_directories(
mlrga PUBLIC
"${CMAKE_CURRENT_LIST_DIR}/public_headers"
)
Я надеюсь, что Librga.so должен быть в Prefab Dir, и пользователь может ссылаться на него.

Подробнее здесь: https://stackoverflow.com/questions/797 ... into-a-aar
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»