반응형

이전에 빌드가 잘 되던 프로젝트 소스에서 갑자기 제목과 같은 오류가 발생해서 주말에 몇 시간을 날렸습니다.

 

근데 원인을 찾고 보니 좀 허탈하였습니다. 요건 나중에 말씀드리고요.

 

먼저 해당 소스는 몇 달 전에 작업하다가 둔 것으로 당시에 빌드가 잘 되었습니다.

 

주말에 그 소스를 가지고 테스트할 일이 있어서 코드 변경 후 빌드했는데 갑자기 오류가 발생한 것입니다.

 

아래처럼 app:mergeDebugResources 빌드 중에 Android resource compilation failed 오류 메시지가 나오면서 빌드가 멈추었습니다.

 

 

일단 리소스쪽은 건드린 것이 없어서 이상하다고 생각하고 있었습니다.

 

코드 외에 그동안 패치된 라이브러리 아티팩트 버전을 업데이트해서 빌드한 것이지만 버전을 롤백해도 현상은 동일했습니다.

 

스택오버플로우에서 제시한 여러 방법을 적용해봐도 해결이 되지 않았습니다.

최후의 방법으로는 안드로이드 스튜디오 등 빌드환경 재설치를 염두에 두고 해결책에 대해서 계속 찾아보았습니다.

- Build 폴더 삭제 후 빌드

- 파일 메뉴의 Invalidate Cashes / Restart 실행

- SDK 버전 변경

- Build Tools 버전 변경

 

소스의 문제가 아니다?

 

이쯤 되니 소스의 문제는 아닌 것 같다는 생각이 들어서 Empty Activity로 새 프로젝트를 만들고 바로 빌드를 했는데 역시나 오류가 발생했습니다.

 

그런데, 갑자기 아래와 같은 팝업이 동시에 발생하였습니다.

 

 

 

지난 주중에 랜섬웨어 대비해서 Bitdefender 설정 변경한 것이 있었는데 이것때문에 aapt2쪽에 동작이 멈춘것 같다는 느낌이 들었습니다. 생각해보니 app:mergeDebugResources 빌드때 오류 메시지를 발생시킨 것도 Aapt2Exception이었습니다. 

 

aapt2가 보안 프로그램에 의해서 차단되었다?

 

랜섬웨어 설정 관련한 옵션에 들어가서 보니 역시나 aapt2의 접근이 차단되어 있었습니다.

  

 

위의 위젯 스위치를 On 해주고 다시 빌드를 해주니 오류없이 빌드가 되었습니다.

 

빌드 오류 해결 :)

 

제가 사용중인 Bitdefender Total Security는 랜섬웨어에 대한 보호하는 기능이 있는데 시스템이 느려질까봐 초기에는 이 기능을 사용하지 않았습니다. 최근에 랜섬웨어 대비하고자 자료 정리하면서 백업도 하고 중요한 폴더들에 대해서는 이 기능도 활성화한 건데 이걸로 인하여 빌드 오류가 발생하였습니다.

 

최초 빌드오류 이슈가 된 프로젝트 소스에는 왜 Bitdefender 팝업 발생하지 않았는지 모르겠지만, 저처럼 혹시 원인을 알 수 없는 Android resource compilation failed 오류 메시지가 발생하였다면 보안 프로그램에 의해 aapt2가 차단된 건 아닌지 점검해보세요.

+ Recent posts