
몇 가지 기능 테스트를 위해 빌드하던 도중 아래와 같은 오류로 도배가 되었다.
Library\Bee\Android\Prj\Mono2x\Gradle\unityLibrary\mobilenotifications.androidlib\src\main\res\drawable-hdpi-v11\이미지.png: Error: '오류문자' is not a valid file-based resource name character: File-based resource names must contain only lowercase a-z, 0-9, or underscore
자세히 읽어보면 그리 어려운 오류는 아니다. 오류 문자가 파일 리소스 이름에 적합하지 않은 문자라는 뜻이다.

모바일 푸시 알림 기능 관련 항목인 Mobile Notifications에 푸시 이미지를 등록해놓았을 것이다. 그 이미지의 identifier 이름이 규칙에 맞지 않아 그런 것이다. 사용할 수 있는 문자는 알파벳 소문자, 0~9, 언더바만 해당된다. 그러니 대문자인 'T'가 걸려 빌드에서 에러가 난 것이다. 푸시 알림 아이콘의 identifier 이름과 리소스로 넣은 파일의 이름이 규칙에 위배되지 않는지 확인하자.
안드로이드 빌드 서버인 gradle은 대문자를 허용하지 않는다. 그러므로 리소스를 합치는 단계에서 icon.png와 Icon.png가 있으면 윈도우나 Mac OS에서는 같은 파일로 취급하여 오류가 나고, 이를 방지하기 위해 리소스 파일명에는 스네이크 네이밍 규칙을 사용한다고 한다.
이름을 바꿔도 오류가 계속 발생한다면 유니티 프로젝트의 Library를 삭제하고 다시 빌드해본다. 위에서 에러가 발생한 곳의 이미지가 저장되어 있는 곳이 Library이기에 초기화해주면 된다.

A successful XML naming convention
Do you remember the last time you had to dig into strings.xml to find the right String to use? Or that you manually had to go over all drawables to find the one you needed?
jeroenmols.com
위는 안드로이드 리소스 작명 규칙이라고 한다. 나도 앞으로는 리소스 파일명에 스네이크 네이밍을 쓰도록 해야겠다...
'Unity > 버그 잡기' 카테고리의 다른 글
| [Font Asset Creator] Missing characters의 원인 (0) | 2026.05.04 |
|---|---|
| 인스펙터창 스크립트 미리보기의 글자 깨짐 현상 해결 (0) | 2026.04.21 |
| [Unity Version Control] 체크인이 안돼요 (0) | 2026.03.16 |
| ArgumentOutOfRangeException: Year, Month, and Day parameters describe an un-representable DateTime. (0) | 2026.01.06 |
| [Excel Importer Package] Exception: Invalid excel cell type at row {1}, column {2}, {3} sheet. (0) | 2024.06.06 |