я делаю андроид пользовательский ROM разработка сейчас. система сборки aosp основана на Android.mk, но я хочу включить некоторые библиотеки aar, возможно ли включать в Aр-библиотеки в Android.mk?aar поддержка в Android.mk
ответ
Вы должны добавить следующие блоки в ваш Android.mk
LOCAL_STATIC_JAVA_AAR_LIBRARIES:= <aar alias>
.
.
.
include $(BUILD_PACKAGE)
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := <aar alias>:libs/<lib file>.aar
include $(BUILD_MULTI_PREBUILT)
Пожалуйста, также быть в курсе Satisfy minSdkVersion требуется библиотеки в ваш файл манифеста.
У решения Kostiantyn Luzan есть проблемы. После компиляции ресурсы в aar будут добавлены в R-файл основного пакета, но не в R-файл пакета aar. Например, имя пакета aar - my.aar, основным именем пакета проекта является my.main. Aar имеет строку с именем «string_in_aar». После компиляции идентификатор строки является my.main.R.string_in_aar, а не my.aar.R.string_in_aar. Это приводит к сбою apk, потому что код в aar использует my.aar.R.string_in_aar.
Решение: LOCAL_AAPT_FLAGS + = --extra-packages {aar package name}. Вы получите два файла R. У них есть некоторый контент. Один пакет является основным пакетом, другой - пакетом aar.
Я сомневаюсь, что это может использовать ресурсы в aar. – Juude
Есть ли какие-либо решения по этому поводу? –
В соответствии с реализацией системы сборки Google AOSP - при использовании LOCAL_STATIC_JAVA_AAR_LIBRARIES вместо LOCAL_STATIC_JAVA_LIBRARIES - единственная разница - это ресурсы. Он отложил ресурсы и объединил их с вашими пакетами ресурсов на этапе компоновки пакетов. –