프로젝트를 진행하다가 도메인 네임을 변경해야할 상황이 생겼다.
프로젝트를 만든지 얼마되지 않았다면 그냥 새로 파서 코드를 옮겨도 되겠지만 이미 상당부분 진행되어서 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번과 같은 종류의 기타 등등