Search code examples
jarandroid-sourceandroid.mk

AOSP prebuilt aar not added to frameworks


I have a simple aar file I would like to include as a prebuilt library to deploy with the AOSP build. The goal is to deploy the aar file in system/framework so that 3rd party developers can utilise it.

Running mm on the same folder as my Android.mk file does exactly what I am expecting, including the creations of intermediates in obj/JAVA_LIBRARIES and the addition of the file in the PRODUCT/system/framework folder.

However, when I run /m to build the image, the above files are not created and as a result the files are missing from the image.

Placing an on purpose error in my Android.mk and testing a full build does through an error, so my Android.mk is correctly being used in the main build.

I have also added the aar module name in the PRODUCT_BOOT_JARS to ensure the class path is updated to allow development and running of APKs developed with these. Just mentioning, although I do not think it plays a role here (past AOSP builds with jar files worked fine without it for deploying at least)

My Android.mk

# include $(CLEAR_VARS)
# LOCAL_MODULE := mylib
# LOCAL_SRC_FILES := mylib.aar
# LOCAL_MODULE_CLASS := JAVA_LIBRARIES
# LOCAL_MODULE_SUFFIX := .aar

Solution

  • I think you need to add your module to PRODUCT_PACKAGES variable in makefile, ex:

    PRODUCT_PACKAGES += \
        ... \
        mylib
    

    The make file you can modify to add your module maybe build/make/target/product/base.mk or build/target/product/core.mk or some other files depend on your custom build system.