🍾

リソースの一部を削除させる resConfigsの書き方がいつの間にか変わっていた

2023/01/16に公開

結論

resConfigs ではなく resourceConfigurations を使え

背景

https://developer.android.com/studio/build/shrink-code?hl=ja#unused-alt-resources
に未使用の代替リソースというものがあります。
例えば開発時のビルド高速化・軽量化のために、開発用のフレーバーでリソースを絞るといった使い方ができます。

以下は開発用のフレーバー(developビルド) にて、リソースを日本語、xxhdpiのみに絞るような設定です。

build.gradle
android {
    productFlavors
        develop {
	    resConfigs "ja", "xxhdpi"
	}
    }
}

ですが、この resConfigs はDeprecatedになっています。
https://developer.android.com/reference/tools/gradle-api/7.3/com/android/build/api/dsl/BaseFlavor#resConfigs(kotlin.collections.Collection)

どうやらAGP7.0の段階ですでにDeprecatedになっていたようです。
https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/BaseFlavor#resconfigs_1

Android StudioのUpgrade Assistantをみても、AGP8.0から resConfigs が消えるようです。

解決

resourceConfigurations を使いましょう。

https://developer.android.com/reference/tools/gradle-api/7.3/com/android/build/api/dsl/BaseFlavor#resourceConfigurations()

build.gradle
android {
    productFlavors
        develop {
	    resourceConfigurations += ["ja", "xxhdpi"]
	}
    }
}

Discussion