Как включить .aar в AOSP с помощью android.mk

Мне нужно создать приложение с android.mk в дереве сборки aosp. У меня есть собственная библиотека .arr, которая находится в следующей папке apps / libs / mylib.aar

Кто-нибудь может сказать мне, как включить aar в сборку android aosp. Я уже пробовал следующие методы, описанные здесь Ссылка на Stackoverflow для сборки aosp с библиотекой .aar

Android.mk выглядит как

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS  := optional
LOCAL_PACKAGE_NAME := sample
LOCAL_CERTIFICATE  := platform

# SRC files
#=====================================================================
LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/aidl
LOCAL_SRC_FILES := $(call all-java-files-under, src) \
                   $(call all-Iaidl-files-under, aidl)

# RES files
#=====================================================================
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
LOCAL_RESOURCE_DIR +=prebuilts/sdk/current/extras/constraint-layout/res
LOCAL_RESOURCE_DIR +=frameworks/support/v7/appcompat/res
LOCAL_RESOURCE_DIR +=frameworks/support/design/res
LOCAL_RESOURCE_DIR +=frameworks/support-v4/res

LOCAL_MANIFEST_FILE :=AndroidManifest.xml
LOCAL_USE_AAPT2 := true
LOCAL_PROGUARD_ENABLED := disabled

# static .aar files
#=====================================================================
LOCAL_STATIC_JAVA_AAR_LIBRARIES:= mylib.aar

#Adding aapt packages
#=====================================================================
LOCAL_AAPT_FLAGS := --auto-add-overlay

LOCAL_AAPT_FLAGS += --extra-packages android.support.v7.appcompat 
LOCAL_AAPT_FLAGS += --extra-packages android.support.v7.recyclerview
LOCAL_AAPT_FLAGS += --extra-packages android.support.annotations
LOCAL_AAPT_FLAGS += --extra-packages android.support.v4
LOCAL_AAPT_FLAGS += --extra-packages android.support.design
LOCAL_AAPT_FLAGS += --extra-packages com.sample.mylib

#Include Static libraries
#=====================================================================
LOCAL_STATIC_JAVA_LIBRARIES := android-support-v7-appcompat
LOCAL_STATIC_JAVA_LIBRARIES := android-support-v7-recyclerview
LOCAL_STATIC_JAVA_LIBRARIES += android-support-v4
LOCAL_STATIC_JAVA_LIBRARIES += android-support-v7-gridlayout
LOCAL_STATIC_JAVA_LIBRARIES += android-support-annotations
LOCAL_STATIC_JAVA_LIBRARIES += android-support-design
LOCAL_STATIC_JAVA_LIBRARIES += gson
LOCAL_STATIC_JAVA_LIBRARIES += zxing
LOCAL_STATIC_JAVA_LIBRARIES += picasso

#Set out path
#=====================================================================
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_APPS)

#For build the application package
#=====================================================================
include $(BUILD_PACKAGE)

include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := mylib:libs/mylib.aar
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += gson:libs/gson-2.8.1.jar
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += zxing:libs/core-3.3.3.jar
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += picasso:libs/picasso.jar

include $(BUILD_MULTI_PREBUILT)

include $(call all-makefiles-under,$(LOCAL_PATH))

Я проверил разные подходы, чтобы построить то же самое.


person Midhun PM    schedule 27.06.2018    source источник
comment
Какую версию Android вы используете? Потому что я помню, что у меня была такая же проблема, и LOCAL_STATIC_JAVA_AAR_LIBRARIES еще не был представлен в моей версии   -  person IIIIIIIIIIIIIIIIIIIIII    schedule 28.06.2018
comment
Я использую Android SDK 26   -  person Midhun PM    schedule 28.06.2018
comment
не могли бы вы также добавить полученную ошибку сборки?   -  person IIIIIIIIIIIIIIIIIIIIII    schedule 28.06.2018
comment
Вы также уверены, что путь к: mylib.aar правильный? ваше описание указывает на что-то другое   -  person IIIIIIIIIIIIIIIIIIIIII    schedule 28.06.2018
comment
@MidhunPM, вы исправили это? У меня такая же проблема.   -  person D.J    schedule 13.10.2020
comment
@MidhunPM. Если вам удалось решить эту проблему, я тоже столкнулся с той же проблемой. .AAR будет построен, если я сделаю mm в своих пакетах / app / ‹app_dir›, но когда я сделаю make в моем корневом каталоге, будет сгенерирован только apk, но не библиотека в out / target / product / ‹device› / obj / JAVA_LIBRARRIES /   -  person Abhishek Dwarakanath    schedule 05.04.2021


Ответы (1)


Я знаю, что опоздал, но все же стоит поделиться этой информацией. LOCAL_STATIC_JAVA_AAR_LIBRARIES поддержка AAPT2 в какой-то момент была прервана. Таким образом, даже если вы добавите свою библиотеку, как описано выше, ресурсы из aar не будут связаны.

из истории AOSP git:

person Amaksoft    schedule 21.11.2018
comment
Коммит от 5 декабря, на который вы ссылаетесь, требует авторизации для просмотра. - person Matt; 29.10.2019
comment
Фиксированный. Простите за неудобства - person Amaksoft; 29.10.2019