未添加到框架的AOSP预构建aar

问题描述

我有一个简单的 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.mkbuild/target/product/core.mk或其他一些文件,具体取决于您的自定义构建系统。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...