- 通过android_library_import声明需要导入的aar包,名称、位置。
- 声明后,通过static_libs引入aar
- 如果有aar有资源文件,需要解压,并且在resource_dirs中声明。否则编译会找不到资源。
- 添加aaptflags, --extra-packages" 可以解决R文件id找不到问题。
- 最重要一点,当依赖的aar包,本身还需要其他依赖时,需要在该aar的android_library_import,通过static_libs方式重复引入。
resource_dirs: [
"res",
"res_unisoc",
"res_zyb",
],
static_libs: [
"vendor.sprd.hardware.connmgr-V1.0-java",
"settings-metrics-constants-protos",
"lottie",
"lib_user_center",
],
libs: [
"unisoc_ims_common",
"radio_interactor_common",
],
aaptflags: [
"--extra-packages",
"com.zuoyebang.iot.pad.zpusercenter",
],
}
platform_compat_config {
name: "Settings_proguard_flags",
srcs: ["proguard.flags"],
}
android_library_import {
name: "lib_user_center",
aars: ["libs/lib_user_center.aar"],
sdk_version: "current",
static_libs: [ // 就是这里,需要二次导入aar需要的依赖
"androidx-constraintlayout_constraintlayout",
"androidx.appcompat_appcompat",
"androidx.cardview_cardview",
"androidx.recyclerview_recyclerview",
"com.google.android.material_material",
"androidx-constraintlayout_constraintlayout-solver",
],
}
源码中的三方依赖资源一般在以下两个位置,可以参考查找。
prebuilts/tools/common/m2/repository
external