Android/실전 회고

[Android] 도메인(패키지명) 변경에 주의할 점

노소래 2021. 8. 31. 17:06

프로젝트를 진행하다가 도메인 네임을 변경해야할 상황이 생겼다.

 

프로젝트를 만든지 얼마되지 않았다면 그냥 새로 파서 코드를 옮겨도 되겠지만 이미 상당부분 진행되어서 Refator - Rename 을 눌러서 바꿔주기로 했다.

 

하지만 작업하는 파일들의 상단에 위치한 만큼 수동으로 손 봐줘야 할 일이 생겼다.

 

모든 항목을 다 바꿔주지 않았을까 하는 안일한 생각을 했다가

'No matching client found for package name ~ ' 같은 에러나

패키지명이 업데이트 되지 않은 파일들에 대해 'can not find symbols' 같은 에러를 만나게 되었다. 

 

 

패키지명 바꾸는 방법

 Android Studio 좌측 'Project' 탭을 클릭하고 패키지를 클릭후 

 

위 사진에서  module_basic 이라는 패키지명을 클릭한 후 

 

우측 상단의 설정모양 아이콘을 클릭해서 'Compact Middle Packages' 를 선택 해제해준다. (사실 여기서는 바꾸려는 패키지 명이 맨 끝쪽에 있어서 이 과정은 생략해도 괜찮았다.)

 

그러면  왼쪽 사진과 같이 단일 패키지의 연속일 때 컴팩트하게 보여줬던 패키지들을 펼쳐서 나타내준다.

 

바꾸고 싶은 패키지에 우클릭해서 

'패키지 우클릭 - Refactor - Rename - Rename Package - 변경 및 Refactor 클릭 - Do Refactor' 하면 바뀐 것을 볼 수 있다. 

 

 

웬만한 것은 다 바꿔주는데 안바뀐 것이 있으면 컴파일 에러가 발생하게 된다. 

컴파일 에러 내용을 따라서 바꾸는 방법도 있겠지만 그 전에 몇가지 체크해보자면 

 

확인해볼만한 것

1. Manifest <manifest> 태그의 package 속성이나 <application> 태그의 name 속성 같은 것들에 이전 패키지명이 들어가 있는지 확인

2. build.gradle 확인 'applicationId' 확인

3. Android Studio 상단탭에 Build - Clean Project - Rebuild Project

4. firebase 를 사용한다면 google-services.json ( 패키지 보여주는 방식을 'Project' 로 바꾸고 app 패키지 확인 ) 의 package_name 수정

5. navigation 을 사용하는 경우 navigation xml 태그에 있는 name 속성들에 있는 파일 경로 

6. 5번과 같은 종류의 기타 등등