Android Gradle Plugin 7.0.0부터 AndroidManifest의 package 속성 deprecated

Android Gradle Plugin 7.0.0 이상에서는 모듈의 namespacebuild.gradle 또는 build.gradle.kts 파일에 명시적으로 설정하도록 요구합니다. 이 변경 사항은 빌드 시스템과 프로젝트 구성 간의 명확성을 높이고, 여러 모듈 프로젝트에서의 충돌 가능성을 줄이기 위해 도입되었습니다.

이전에는 AndroidManifest.xml에서 package 속성을 통해 패키지 이름을 정의했지만, 이제는 Gradle 파일의 namespace 속성을 통해 패키지 이름을 설정합니다.

이러한 요구 사항에 충족되지 않는다면 아래와 같은 에러가 발생할 수 있습니다.

Android Studio - namespace error

타임라인

Android Gradle Plugin 7.0.0 릴리스 (2021년 7월 15일)

기존 package와 새로운 namespace의 차이

  1. 기존 방식 (package)
    • AndroidManifest.xml에서 선언.
    • 주로 앱의 Java 또는 Kotlin 패키지 이름과 연결.
  2. 새로운 방식 (namespace)
    • 모듈 수준 build.gradle 파일에서 선언.
    • 소스 코드 구조와 빌드 시스템 간의 강한 일관성을 제공.

gradle 예시

android {
    namespace "com.example.myapp"
}

영향을 받는 버전

  • Gradle Plugin 7.0.0 이상: AndroidManifest.xmlpackage 속성이 있는 경우, 빌드 실패.
  • Gradle Plugin 6.x 이하: package 속성을 여전히 허용하지만, Gradle Plugin 업그레이드 시 문제 발생 가능.

요약

package 속성은 Android Gradle Plugin 7.0.0(2021년)부터 공식적으로 사용이 중단되었습니다. 따라서 현재 안드로이드 프로젝트에서 관련 문제가 발생했다면, 사용하는 Gradle Plugin 버전이 7.0.0 이상일 가능성이 높습니다. 이를 해결하려면 AndroidManifest.xmlpackage 속성을 제거하고, 대신 build.gradle 파일에 namespace를 설정하세요.

평점

Leave a Comment