android资源是否会覆盖minSdk版本的依赖项?

ddrv8njm  于 2023-03-21  发布在  Android
关注(0)|答案(1)|浏览(141)

是否根据build.gradle中的defaultConfig.minSdk版本启用/禁用android资源覆盖?
我不知道为什么会发生这种情况,但我猜改变minSdk版本将禁用资源覆盖。
资源覆盖适用于minSdk23,但不适用于minSdk *24或更高版本 *。

我期待什么

EXTERNAL_LIBRARYlibrary_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版本?我从来没有看到任何相关的问题(或者只是我找不到它)

gpnt7bae

gpnt7bae1#

它使用外部图书馆的资源,因为找到最匹配的资源。
(How Android找到最匹配的资源)
我将资源放入drawable目录中,该目录与外部库中的标识符相同,但外部库的资源位于drawable-anydpi-v24中,因此发生minSdk 24或更高版本。
最后我解决了这个问题,把可绘制的资源放入drawable-anydpi-v24

相关问题