aar - 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 似乎根本不起作用。
解决方案
推荐阅读
- php - 无法从动态链接的选择下拉列表中检索数据 - Laravel
- shell - 如何在不使用 shell 脚本中的 sort cmd 的情况下找到数组中的最大值
- css - 覆盖 Nuxt 组件中的 Bulma 变量
- gradle - 带有自定义转换模块的 MLCP 导入
- java - 如何在 Android Studio 中使用暂存文件?
- python - selenium.common.exceptions.ElementNotInteractableException:消息:不显示元素
- rdf - 如何为来自不同数据库的实体创建语义 Web URI
- next.js - 如何为 Next.js 安装 Semantic ui
- java - 我创建了十进制到二进制的方法,我想在二维数组中使用它,但我不能
- sql - 如何选择我在 Oracle SQL 中修改的行