마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

apk로 만들때 proguard..라는 에러가 나오는데요.. 어떻게 처리해야하는건가요??ㅜㅠ

0 추천
안녕하세요.

apk 로 만들려고 하는데 오류가 나더라구요. 핸드폰에 실행할때는 문제가 없었거든요..

 

[2016-03-17 20:13:43 - ] Proguard returned with error code 1. See console
[2016-03-17 20:13:43 - ] Note: there were 13 duplicate class definitions.
[2016-03-17 20:13:43 - ] Warning: android.support.v4.app.NotificationCompat$NotificationCompatImplBase: can't find referenced method 'voidsetLatestEventInfo(android.content.Context,java.lang.CharSequence,java.lang.CharSequence,android.app.PendingIntent)' in class android.app.Notification
[2016-03-17 20:13:43 - ]       You should check if you need to specify additional program jars.
[2016-03-17 20:13:43 - ] Warning: there were 1 unresolved references to program class members.
[2016-03-17 20:13:43 - ]          Your input classes appear to be inconsistent.
[2016-03-17 20:13:43 - ]          You may need to recompile them and try again.
[2016-03-17 20:13:43 - ]          Alternatively, you may have to specify the option
[2016-03-17 20:13:43 - ]          '-dontskipnonpubliclibraryclassmembers'.
[2016-03-17 20:13:43 - ] java.io.IOException: Please correct the above warnings first.
[2016-03-17 20:13:43 - ]     at proguard.Initializer.execute(Initializer.java:321)
[2016-03-17 20:13:43 - ]     at proguard.ProGuard.initialize(ProGuard.java:211)
[2016-03-17 20:13:43 - ]     at proguard.ProGuard.execute(ProGuard.java:86)
[2016-03-17 20:13:43 - ]     at proguard.ProGuard.main(ProGuard.java:492)

 

 

이렇게 나오는데.. 뭘 해야하는지 처음보는 오류라서 감이 안잡힙니다..ㅠㅜ

 

감사합니다.
익명사용자 님이 2016년 3월 17일 질문
좀 더 자세히 상황을 쓰겠습니다..

안드로이드 sdk를 5.0 에서 6.0 으로 바꾸면서 http오류가 나오더라구요

프로젝트가 너무커서 하나씩 바꾸기가 곤란해서 기존 http jar를 추가했습니다.

그랫더니 프로젝트 오류도 사라지고 run as 로 실행했을때는 잘 되고있습니다.

그러나 apk로 만들때는 위에 오류가 나오고있습니다...

검색을 더 했을때는

-dontwarn org.apache.** 를 추가해라.. 이러는데 이건 이미 써져있는상태에서 오류가 나오고있습니다.. 그냥 하나하나 바꿔줘야 할까요??

1개의 답변

0 추천
release 일 때 proguard 옵션이 true 로 되어 있는걸 false 로 바꾸세요

buildTypes -> release -> minifyEnabled false
aucd29 (218,390 포인트) 님이 2016년 3월 18일 답변
minifyEnabled 를 false 할 경우, 소스 암호화가 안되기 때문에
암호화를 진행하고자 한다면 false로 하면 안되겠죠.

에러가 저것만 있는게 아니라 혹시 아래에  
Warning:library class ... 불라불라 여러개 뜨지 않았나요.
에러 메시지 보면 13개 정도 뜬것 같은데..

proguard-rules.pro 파일에 해당 클래스 패키지 Warning을 건너 뛴다는 의미를 정의 할 수 있어요.

-keep class 해당 패키지.**{*;}    // 이건 해당 패키지 내에 있는 클래스를 암호화 하지 않는다.
-dontwarn 해당 패키지.**            // 이건 패키지에 파일을 암호화 하는데 Warning을 무시한다.

아래 자세한 내용은 아니지만 관련된 내용을 좀 적어놨어요.
참고하세요.

http://gogorchg.tistory.com/entry/Android-Project%EC%97%90-Proguard-%EC%A0%81%EC%9A%A9-%ED%95%98%EA%B8%B0
답변 감사합니다!
그런데 저는 이클립스에서 하고있거든요
댓글 내용으로 찾아보니까 안드로이드 스튜디오인거같은데요...ㅜㅠ
project.properties 라는 파일에 proguard 부분에 처음 부분을 # 처리하세요
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

하지만 위에분 이야기 처럼 프로가드가 필요한 상황이라면은 프로가드 관련 공부를 하시고 예외처리를 해주셔야 하는데
일단은 그리 보이지 않아서 주석 처리하는걸로 설명합니다. ㅎ
...