首页 > 解决方案 > LOCAL_AAPT_FLAGS += --extra-packages 没有将 aar 资源打包到 Android P 版本的主 apk 中

问题描述

A.apk想介绍B.aar。在 Android.mk 中:

LOCAL_STATIC_JAVA_AAR_LIBRARIES += BModuleName
...
LOCAL_USE_AAPT2 := true
LOCAL_AAPT_FLAGS := --auto-add-overlay
LOCAL_AAPT_FLAGS += --no-auto-version
LOCAL_AAPT_FLAGS += --extra-packages com.test.b
...
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += BModuleName:libs/B.aar

当A.apk运行时,仍然出现错误:java.lang.NoSuchFieldError: No static field xxx of type I in class Lcom/xxx/xxx/R$string; 或其超类('com.test.bR$string' 的声明出现在 /data/app/com.test.main-jCfYOEO-ACv7jgwgzc0fpw==/base.apk!classes34.dex 中)

这意味着 aar 资源没有打包到 A.apk 中,有人知道为什么吗?LOCAL_AAPT_FLAGS += --extra-packages 似乎根本不起作用。

标签: aarandroid.mk

解决方案


推荐阅读