是否根据build.gradle
中的defaultConfig.minSdk
版本启用/禁用android资源覆盖?
我不知道为什么会发生这种情况,但我猜改变minSdk
版本将禁用资源覆盖。
资源覆盖适用于minSdk
23,但不适用于minSdk
*24或更高版本 *。
我期待什么
EXTERNAL_LIBRARY
有library_icon
可绘制资源,字面意思是red_circle。
将B (Library)
library_icon
覆盖为蓝色圆圈。
因此,library_icon
应绘制为蓝色_圆形。
项目结构:
A (Application)
B (Library)
分级设置:
// build.gradle for A
// ...
dependencies {
implementation project(':B')
}
//////////////////////
// build.gradle for B
android {
defaultConfig {
minSdk 23 // (ok when 23, 24 or higher does not override resources)
}
}
dependencies {
api EXTERNAL_LIBRARY
}
我的问题是,为什么资源覆盖不工作取决于minSdk版本?我从来没有看到任何相关的问题(或者只是我找不到它)
1条答案
按热度按时间gpnt7bae1#
它使用外部图书馆的资源,因为找到最匹配的资源。
(How Android找到最匹配的资源)
我将资源放入
drawable
目录中,该目录与外部库中的标识符相同,但外部库的资源位于drawable-anydpi-v24
中,因此发生minSdk 24或更高版本。最后我解决了这个问题,把可绘制的资源放入
drawable-anydpi-v24
。