在AOSP构建中添加资源并使用aar文件

时间:2018-10-31 00:42:23

标签: android-source android.mk

我需要在aosp构建树中使用android.mk构建应用程序。我有一个自定义的.arr lib,其中包含drawables,strings..etc等一些资源,该资源位于以下文件夹apps / libs / mylib.aar

任何人都可以告诉我如何将aar包含在android aosp构建中以及如何在其他应用程序中使用该aar资源。我已经尝试过Stackoverflow中介绍的以下方法。

https://stackoverflow.com/questions/31205856/aar-support-in-android-mk

我的应用程序的Android.mk看起来像

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res 
LOCAL_PACKAGE_NAME := TestSampleAarLib
LOCAL_STATIC_JAVA_AAR_LIBRARIES:= sampleaarlib
LOCAL_STATIC_ANDROID_LIBRARIES  += android-support-v7-appcompat
LOCAL_STATIC_ANDROID_LIBRARIES  += android-support-v7-gridlayout
LOCAL_STATIC_ANDROID_LIBRARIES  += android-support-v13

LOCAL_USE_AAPT2 := true
LOCAL_AAPT_FLAGS := \
    --auto-add-overlay \
    --extra-packages com.myaar.sample.lib
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_CERTIFICATE := platform
LOCAL_MODULE_TAGS := optional
LOCAL_PRIVILEGED_MODULE := true

LOCAL_MANIFEST_FILE := AndroidManifest.xml
include $(BUILD_PACKAGE)

include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := sampleaarlib:libs/sampleaarlib.aar
include $(BUILD_MULTI_PREBUILT)

如果有人想在AOSP中使用aar的资源,请分享。

谢谢。

1 个答案:

答案 0 :(得分:1)

要从aar文件中添加资源,请在android.mk文件中添加以下内容。

LOCAL_RESOURCE_DIR +=$(call intermediates-dir-for,JAVA_LIBRARIES,<aar_file_name>,,common)/aar/res

在Android 8.1版本中经过测试和验证。

注意:在最新的android版本中,例如9+资源会自动合并到项目中。