본문 바로가기
[Developer]/Android

[트러블슈팅] Default file proguard-android.txt should not be specified in this module

by 반가운 해피빈이 2018. 11. 29.

Android Gradle Plugin 3.2.0 이상의 버전을 사용중일 때,

그리고 feature 모듈과 base 모듈을 구분해서 사용중이라면 다음의 빌드 에러 메세지를 발견할 수 있다.


Default file proguard-android.txt should not be specified in this module. It can be specified in the base module instead.




이렇게 메세지가 뜨는 것은 base 모듈에서는 발생하지 않으며,

별도로 제작한 feature 모듈에서만 발생한다.




위의 상황과 같은 경우이며, 이러할 경우


feature module의 build.gradle 파일을 열어




위와 같이 수정한다.



즉, default proguard file이 


{ANDROID_SDK}\tools\proguard\proguard-android.txt


위의 위치에 존재한다.



이 파일을 기본적으로 가져다 쓰는데, 이것에 대해 base 모듈에서만 사용하도록 바꾼것이다.

이것을 제거하면 자신이 원하는 proguard 설정을 마음껏 설정하여 사용해도 된다.


이것에 대한 이유를 알아내고자 했지만 실패했다.. 추측으로는 멀티빌드하는데 방해가 되는건가 싶기도 하고, 기본 룰이 있으면, 용량을 줄이는데 방해가 되서 그러는가 싶기도 하고... 정확한 이유는 알 수 없었다..


하지만 해결이 되는 상태이니 이것만으로도 가치가 있을 듯 하여 기록한다.





추가로, 팁 하나만 더 기록하자면


1) getDefaultProguardFile('proguard-android.txt')


2) getDefaultProguardFile('proguard-android-optimize.txt')


1)의 규칙 대신에 2)의 규칙을 사용하면 좀 더 optimize된 상태의 코드를 만나볼 수 있을 것이다. 용량도 조금 더 절약할 수 있다. 하지만 실행에는 문제가 발생할지도 모르니 꼭 테스트가 필수다.

댓글0