Android Studio 2.2 이상에서 레이아웃 에디터 한글 문제 해결하기

Cover image by Google (https://developer.android.com/studio/index.html)

언제부터인가 안드로이드 스튜디오 레이아웃 에디터에서 한글 폰트가 나오지 않기 시작했습니다.
레이아웃을 작성할 때는 에디터를 쓰지 않고 주로 XML을 이용하지만, 프리뷰에서 한글 폰트가 나오지 않으니 불편한 점이 이만 저만이 아닙니다.

문제의 원인은 안드로이드 스튜디오 레이아웃 플러그인에 한글 폰트가 정의되어 있으나, 실제 폰트 파일이 빠진 채 배포되어 발생하는 것입니다. 재미있는 것은 각 언어별 폰트 사용을 정의해 놓은fonts.xml 파일에 한글은 NotoSansCJK를 사용하도록 되어 있으나, 정작 이 파일은 빠져있고 나눔고딕 폰트 파일이 패키지에 포함되어 있다는 것입니다. 이 것으로 미루어 보건대, 안드로이드 4.2에서 나눔고딕이 기본 폰트였으나, 5.0부터 NotoSans로 변경되면서 폰트파일을 제대로 바꾸지 않고 배포된 것으로 보입니다.

CJK 폰트는 기본적으로 한글, 일문, 중문 문자를 포함하고 있어 세 언어에서 모두 문제가 발생하는 것이 맞지만, 다행히도 일문과 중문은 fallback 폰트인 DroidSans에 이미 포함되어 있어 글꼴 자체를 표시하는 데에는 문제가 없습니다.

이 문제는 이미 안드로이드 버그 트래커에 보고되어 수정된 코드가 리뷰가까지 요청되어 있으나 감감 무소식입니다.

해당 문제가 보고된지 벌써 5개월이 지났지만 아직 고쳐질 기미가 보이지 않으니 직접 수정해 봅시다. 이 문제를 수정하는 방법은 두 가지가 있습니다.

  1. 빠진 한글 폰트인 NotoSansCJK-Regular.ttc파일을 추가한다.
  2. 기본 한글 폰트를 이미 포함되어 있는 나눔고딕으로 변경한다.

본인이 레이아웃 에디터에서 사용하고 싶은 폰트에 따라 하고 싶은 방법을 선택하면 됩니다.

시작하기에 앞서 안드로이스 스튜디오가 설치된 경로로 이동합니다.
Windows: {안드로이드 스튜디오 설치경로}\plugins\android\lib\layoutlib\data\fonts
OSX: /Applications/Android\ Studio.app/Contents/plugins/android/lib/layoutlib/data/fonts/

1. 빠진 NotoSansCJK파일 추가하기

다음 링크에서 NotoSansCJK-Regular.ttc파일을 다운로드 받습니다.

위에서 이동한 경로에 방금 다운로드 한 폰트 파일을 복사합니다.
그리고 해당 폴더의 fontsInSdk.txt파일을 열어 다음 줄을 찾습니다.

...
NotoSansCherokee-Regular.ttf
NotoSansCoptic-Regular.ttf
...

다음과 같이 NotoSansCherokee-Regular.ttf 바로 아래에 NotoSansCJK-Regular.ttc를 추가합니다. (사실 아무 곳에나 추가해도 됩니다)

...
NotoSansCherokee-Regular.ttf
NotoSansCJK-Regular.ttc
NotoSansCoptic-Regular.ttf
...

이제 안드로이드 스튜디오를 재시작합니다.

2. 기본 한글 폰트를 나눔고딕으로 변경하기

위에서 이동한 경로에서 fonts.xml파일을 열어 다음 줄을 찾습니다.

<family lang="ko">
    <font weight="400" style="normal" index="1">NotoSansCJK-Regular.ttc</font>
</family>

다음과 같이 NotoSansCJK-Regular.ttcNanumGothic.ttf로 변경합니다.

<family lang="ko">
    <font weight="400" style="normal" index="1">NanumGothic.ttf</font>
</family>

이제 안드로이드 스튜디오를 재시작합니다.

마치며

이제 안드로이드 스튜디오 레이아웃 에디터에서 한글이 잘 표시됩니다.