Cordova 파일명이 아스키코드가 아닐때 (또는 한글인 경우) 빌드 실패

2016. 8. 4. 15:05·App Development/Hybrid Programming
반응형

비 ASCII 파일명으로 인한 Cordova 빌드 오류 해결하기

문제

Cordova로 작업하는 중에 예상치 못한 빌드 오류가 발생했고, 원인을 찾기 어려웠습니다. 조사와 검색 끝에 문제의 원인이 비 ASCII 문자(한글 문자)를 포함한 리소스 파일명 때문이라는 것을 발견했습니다.

빌드 프로세스에서 다음과 같은 오류가 발생했습니다:

Error: cmd: Command failed with exit code 1 Error output:
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':processDebugResources'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\andsdk\build-tools\24.0.1\aapt.exe'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

해결책

근본 원인을 파악하고 나니 해결책은 간단했습니다: 한글 파일명을 가진 모든 리소스 파일을 영어(ASCII) 문자를 사용하도록 이름을 바꾸었습니다.

이 문제가 발생하는 이유

Android 빌드 도구(특히 aapt.exe - Android Asset Packaging Tool)는 리소스 파일명에 비 ASCII 문자를 사용할 때 제한이 있습니다. 빌드 프로세스가 한글, 일본어, 중국어 또는 다른 비 ASCII 문자가 포함된 파일명을 만나면 이러한 리소스를 제대로 처리하지 못합니다.

이는 Cordova/PhoneGap 프로젝트와 네이티브 Android 개발에 모두 영향을 미치는 Android 빌드 시스템의 알려진 제한사항입니다.

이 문제를 예방하는 방법

향후 프로젝트에서 이 문제를 피하려면:

  1. 모든 리소스 파일명에 ASCII 문자(A-Z, a-z, 0-9)만 사용
  2. 파일명에 공백을 피하세요(대신 밑줄이나 하이픈 사용)
  3. 대소문자 구분 파일 시스템의 문제를 방지하기 위해 파일명은 소문자로 유지
  4. 리소스 파일에 명명 규칙을 사용 (예: 홈아이콘.png 대신 icon_home_large.png)

추가 문제 해결 팁

문제를 일으키는 파일을 식별하기 어려운 경우 다음과 같이 할 수 있습니다:

  1. --debug 플래그를 사용하여 더 자세한 로그 확인
  2. 체계적으로 리소스 그룹의 이름을 변경하여 문제가 있는 파일 찾기
  3. 프로젝트 디렉토리에서 비 ASCII 파일명을 식별할 수 있는 도구 사용

참고 자료

더 자세한 정보는 이 스택 오버플로우 게시물을 참조하세요: Ionic build failed: find the line where the error occurs

반응형
저작자표시 (새창열림)

'App Development > Hybrid Programming' 카테고리의 다른 글

JQuery mobile 에서 로더(스피너) 변경  (0) 2016.12.13
'App Development/Hybrid Programming' 카테고리의 다른 글
  • JQuery mobile 에서 로더(스피너) 변경
Ethan Kang
Ethan Kang
Digital nomad + Software Engineer
    반응형
  • Ethan Kang
    Software Engineer Ethan
    Ethan Kang
  • 전체
    오늘
    어제
    • Programming (105)
      • Java (22)
        • Spring Framework (6)
        • Spring (8)
        • Spring Security (0)
        • JPA (3)
        • MyBatis (1)
        • Servlet, JSP (2)
      • DevOps (4)
        • Kubernetes (2)
        • Docker (1)
        • Terraform (0)
        • Jenkins (0)
        • Bazel (1)
      • Front-End (18)
        • ReactJS (0)
        • Typescript (3)
        • JQuery (1)
        • Java Script (13)
        • RxJS (0)
        • CSS (1)
      • Messaging Queue (1)
        • Kafka (1)
      • Linux (Ubuntu based) (8)
        • Ubuntu (0)
        • CentOS (2)
        • Shell Scripting (2)
      • PHP (5)
        • Laravel (2)
        • PHP 문법 (3)
      • Go (1)
        • Basics (1)
      • Python (16)
        • Flask (1)
        • Django (4)
      • App Development (4)
        • Android (1)
        • Cordova (0)
        • React Native (0)
        • Hybrid Programming (2)
        • IOS (1)
      • Database (4)
        • SQL (0)
        • My SQL (4)
        • MongoDB (0)
      • Shader Programming (0)
      • Tools (5)
        • GIT (2)
      • C# (3)
        • ASP.NET MVC (2)
        • CSharp 파헤치기 (1)
      • 서평 (1)
      • ETC (4)
        • C++ (0)
        • Geo Server (0)
        • NodeJS2 (0)
        • Ruby (2)
        • Elastic Search (0)
        • Camera (0)
        • Open Source (2)
        • WebVR (0)
      • 소프트웨어 이론 (2)
        • TDD (1)
        • Architecture (1)
        • WEB DEV (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

    • 컬러스크립터
  • 공지사항

    • 좋은 프로그래머가 되는 24가지 방법
  • 인기 글

  • 태그

    autoloading
    java
    스프링
    mysql
    N+1
    Kotlin
    db
    django #장고
    mysql데이터복구
    Python
    자바
    데이터베이스
    이미지 #jsp
    mybatis
    VersionControl
    데이터베이스캐쉬
    스프링데이타
    psr-4
    JPA
    spring
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Ethan Kang
Cordova 파일명이 아스키코드가 아닐때 (또는 한글인 경우) 빌드 실패
상단으로

티스토리툴바