Android Gradle Plugin 7.0.0 이상에서는 모듈의 namespace
를 build.gradle
또는 build.gradle.kts
파일에 명시적으로 설정하도록 요구합니다. 이 변경 사항은 빌드 시스템과 프로젝트 구성 간의 명확성을 높이고, 여러 모듈 프로젝트에서의 충돌 가능성을 줄이기 위해 도입되었습니다.
이전에는 AndroidManifest.xml
에서 package
속성을 통해 패키지 이름을 정의했지만, 이제는 Gradle 파일의 namespace
속성을 통해 패키지 이름을 설정합니다.
이러한 요구 사항에 충족되지 않는다면 아래와 같은 에러가 발생할 수 있습니다.
타임라인
Android Gradle Plugin 7.0.0 릴리스 (2021년 7월 15일)
namespace
속성 도입.package
속성을 더 이상AndroidManifest.xml
에서 사용할 수 없도록 변경.- 관련 문서: Android Gradle Plugin 7.0.0 릴리스 노트
기존 package
와 새로운 namespace
의 차이
- 기존 방식 (
package
)AndroidManifest.xml
에서 선언.- 주로 앱의 Java 또는 Kotlin 패키지 이름과 연결.
- 새로운 방식 (
namespace
)- 모듈 수준
build.gradle
파일에서 선언. - 소스 코드 구조와 빌드 시스템 간의 강한 일관성을 제공.
- 모듈 수준
gradle 예시
android {
namespace "com.example.myapp"
}
영향을 받는 버전
- Gradle Plugin 7.0.0 이상:
AndroidManifest.xml
의package
속성이 있는 경우, 빌드 실패. - Gradle Plugin 6.x 이하:
package
속성을 여전히 허용하지만, Gradle Plugin 업그레이드 시 문제 발생 가능.
요약
package
속성은 Android Gradle Plugin 7.0.0(2021년)부터 공식적으로 사용이 중단되었습니다. 따라서 현재 안드로이드 프로젝트에서 관련 문제가 발생했다면, 사용하는 Gradle Plugin 버전이 7.0.0 이상일 가능성이 높습니다. 이를 해결하려면 AndroidManifest.xml
의 package
속성을 제거하고, 대신 build.gradle
파일에 namespace
를 설정하세요.