The same input jar is specified twice.

안드로이드 빌드 시, 아래와 같은 에러를 만나는 경우가 있다.

Error:Execution failed for task ':proguardRelease'.
> java.io.IOException: The same input jar [libs/gtranslateapi-1.0.jar] is specified twice.

메시지 내용은 ‘gtranslateapi-1.0.jar’가 중복으로 언급된다는 것이다.  이 때, proguard-project.txt나 proguard.cfg를 보면 아래와 같이 되어 있는 경우가 많다.

...
-libraryjars libs/gtranslateapi-1.0.jar
-keep class com.gtranslate.** { *; }
...

결론부터 이야기하면, ‘-libraryjars ..’ 줄을 지우면 된다. 원래 -libraryjars는 참조하지만 apk에 들어가지 않는 라이브러리를 명시적으로 표시하는 옵션이었다. 불필요하다고 생각할 수도 있으나, 명시적으로 언급하면 JDK 버전을 다양하게 입력할 수 있는 장점이 있다고 proguard의 메뉴얼에서 설명하고 있다.

프로가드의 옵션에 대한 문서가 불충분하여 왜 -libraryjars와 -keep 옵션 사이에 문제가 생기는지는 불분명하다.

참조

 

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.