きもいですよ。
こう書いていたり、
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
こう書いてたり、
dependencies {
implementation "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion"
implementation "com.android.support:support-v4:$rootProject.supportLibraryVersion"
implementation "com.android.support:design:$rootProject.supportLibraryVersion"
「変数を使ってまとめました!」とか言ってるけど。
きもいですよ。
そもそも、定義の位置がヘボいのですよ。
書いてたのは私です。
以下のように書いてました。
root/build.gradle
ext {
minSdkVersion = 24
targetSdkVersion = 27
compileSdkVersion = 27
buildToolsVersion = '27.0.2'
supportLibraryVersion = '27.1.0'
firebaseVersion = '11.8.0'
}
これのせいで、「${rootProject.firebaseVersion」とか「rootProject.ext.***」とかダラダラ書く羽目になるようです。
stackoverflow も今やゴミのだらけでどれが正しいのか分かりづらいです。
神はこのように書いていた。
root/build.gradle
buildscript {
ext.buildConfig = [
'compileSdk': 27,
'minSdk': 24,
'targetSdk': 27
]
ext.versions = [
'supportLibrary': '27.1.0',
'kotlin': '1.2.30',
'okhttp': '3.10.0',
'retrofit': '2.3.0',
'kotshi': '1.0.1',
'dagger': '2.15',
]
ブロック buildscript {} 内に map ですっきり記述しています。
module/build.gradle
android {
compileSdkVersion buildConfig.compileSdk
defaultConfig {
minSdkVersion buildConfig.minSdk
targetSdkVersion buildConfig.targetSdk
versionCode buildConfig.versionCode
versionName buildConfig.versionName
}
}
// ....
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:${versions.kotlin}"
implementation "com.android.support:appcompat-v7:${versions.supportLibrary}"
implementation "com.android.support:support-v4:${versions.supportLibrary}"
implementation "com.android.support:design:${versions.supportLibrary}"
implementation "com.google.firebase:firebase-core:${versions.firebase}"
implementation "com.google.firebase:firebase-auth:${versions.firebase}"
定形なテンプレートとして使えます。
参照する際は、「rootProject」とか「ext」の単語は不要です。
関連の以下も必須だろうと思います。
👉 【Gradle Version Catalog】libs.versions.toml キー名の形式 camelCase vs kebab-case