[Android] Android

제가 사용하고 있는 안드로이드 스튜디오 버전은 Chipmunk입니다.

프로젝트를 진행하면서 Firebase를 사용했습니다.

앱을 Firebase에 통합할 때 Chipmunk는 build.gradle의 콘텐츠가 프로젝트 수준에서 다르다는 것을 알아차렸습니다.

일반적으로 build.gradle에는 아래와 같은 buildscript와 allprojects가 있습니다.

buildscript {
    ext.kotlin_version = "1.5.0"
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.2.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.13'
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        jcenter() // Warning: this repository is going to shut down soon
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

그러나 Chipmunk는 플러그인으로만 존재합니다.

처음 봤을 때 당황스러웠다.

plugins {
    id 'com.android.application' version '7.2.2' apply false
    id 'com.android.library' version '7.2.2' apply false
    id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
    id 'com.google.dagger.hilt.android' version '2.44' apply false
}

찾아보고 settings.gradle에 따로 적어보니 gradle이 6.8이고 새로운 문법이 만들어졌다는,,, 그런 이야기가,,,

이 접근 방식을 중앙 집중식 저장소 선언이라고 합니다.

https://docs.gradle.org/current/userguide/dependency_management.html#sub:centralized-repository-declaration

이 블로그를 보고 싶을 수도 있습니다.

https://ideajini.15

해결

플러그인을 통해 빌드스크립트를 추가했습니다.

buildscript {
    dependencies {
        classpath 'com.google.gms:google-services:4.3.13'
    }
}

// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
    id 'com.android.application' version '7.2.2' apply false
    id 'com.android.library' version '7.2.2' apply false
    id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
    id 'com.google.dagger.hilt.android' version '2.44' apply false
}

참조