问题描述
我有一个简单的 aar 文件,我想将其作为预构建库包括在内,以便与AOSP构建一起部署。目标是将aar文件部署在系统/框架中,以便第三方开发人员可以使用它。
在与我的Android.mk文件相同的文件夹中运行mm完全符合我的期望,包括在obj / JAVA_LIBRARIES中创建中间体以及在PRODUCT / system / framework文件夹中添加文件。
但是,当我运行/ m 来构建映像时,没有创建上述文件,因此映像中缺少这些文件。
在我的Android.mk中放置一个故意的错误并测试完整版本会通过错误进行,因此我的Android.mk已在主版本中正确使用。
我还在PRODUCT_BOOT_JARS中添加了aar模块名称,以确保更新类路径以允许开发和运行使用这些模块开发的APK。只是提及,尽管我不认为它在这里起作用(使用jar文件进行的过去AOSP构建在没有部署它的情况下也可以正常工作)
我的Android.mk
# include $(CLEAR_VARS)
# LOCAL_MODULE := mylib
# LOCAL_SRC_FILES := mylib.aar
# LOCAL_MODULE_CLASS := JAVA_LIBRARIES
# LOCAL_MODULE_SUFFIX := .aar
解决方法
我认为您需要将模块添加到makefile中的PRODUCT_PACKAGES变量中,例如:
PRODUCT_PACKAGES += \
... \
mylib
您可以修改以添加模块的make文件,例如build/make/target/product/base.mk
或build/target/product/core.mk
或其他一些文件,具体取决于您的自定义构建系统。