Android 개발 문제 해결
Android에서 크래시 버그 리포트

Gradle 문제 해결

구 시스템 대신 Gradle을 사용하여 Android 프로젝트를 익스포트하도록 한 경우 빌드 오류가 생길 수 있으며, 이는 특히 추가 Android 라이브러리를 사용하거나 커스텀 AndroidManifest.xml 을 추가한 경우 발생할 수 있습니다.

Android Gradle 플러그인은 이전 ADT/Ant 시스템보다 훨씬 더 까다롭습니다. 심볼 중복, 존재하지 않는 리소스 참조, 또는 주 애플리케이션과 동일한 속성을 설정한 라이브러리 프로젝트와 같이 오류로 간주되는 상황을 수용하지 않습니다.

대부분의 경우 문제를 해결하려면 주 파일이든, 프로젝트가 사용하는 라이브러리 파일이든, AndroidManifest.xml 파일을 수정해야 합니다.

단순하지 않은 프로젝트이거나, 아래의 문제 해결 섹션에서 설명된 오류 외의 문제가 발생한 프로젝트의 경우, 프로젝트를 Gradle 프로젝트로 __Build Settings__에서 익스포트한 후 커맨드 라인에서 빌드합니다. 커맨드 라인에서 빌드하면 자세한 오류 메시지가 출력되며, 변경 시 더 빨리 적용할 수 있게 합니다.

특정 문제

리소스 찾을 수 없음

주 파일 또는 라이브러리 내에 있는 AndroidManifest.xml 파일이 존재하지 않는 리소스를 참조하는 경우입니다. 간혹 라이브러리가 설정한 애플리케이션 아이콘이나 레이블 문자열이 원인인 경우가 있습니다. 이 문제는 이러한 참조를 제거하지 않은 상태에서 주 매니페스트 파일을 라이브러리 프로젝트에 복사한 경우 발생합니다.

이들 속성을 Android Manifests에서 제거합니다. 보통 라이브러리의 속성을 제거하면 됩니다.

APK에서 파일 중복

주 애플리케이션과 라이브러리 프로젝트, 또는 라이브러리 프로젝트 간 파일 이름 충돌이 발생한 경우입니다. 모든 파일이 동일한 APK 패키지에 복사된다는 점을 기억하십시오.

중복된 파일 중 하나를 제거해야 합니다.

패키지 이름 충돌

라이브러리는 동일한 Java 패키지를 주 애플리케이션이나 다른 라이브러리에 사용할 수 없습니다.

일반적으로 라이브러리의 패키지 이름을 다르게 변경해야 합니다. 라이브러리에 다수의 코드가 포함되어 있으면 주 패키지 이름을 변경하는 것이 쉬울 수도 있습니다(Player 설정에서).

특성 충돌

라이브러리가 주 파일(AndroidManifest.xml)의 속성을 자유롭게 오버라이드할 수 없는 경우입니다. 이 오류는 위의 Resource not found 오류와 비슷하게, 라이브러리에 애플리케이션 아이콘이나 레이블 스트링 설정으로 인해 자주 발생합니다.

해당 속성을 라이브러리에서 제거하거나, application 태그에 tools:replace 속성을 추가하여, 병합 충돌이 해결되는 방식을 표시합니다.

Android 개발 문제 해결
Android에서 크래시 버그 리포트