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

Proguard Keep적용 관련

0 추천
안녕하세요.

 

proguard를 적용중에 몇일째 답을 못 찾겠어서 질문드립니다.

 

package com.test.proguard;

public class A{

   public interface B{

        void onResult();

    }

}

 

이런 클래스가 있을경우

 

inner interface인 B를 keep시키려 하는데 도저히 안되네요

 

-keep interface com.test.proguard.** { *; }

 

-keep class com.test.progurad.A{

  public <fields>;

  public <methods>;

}

 

이렇게 추가 했는데

 

제가 잘 못하고 있는건가요?
슈퍼클래스 (360 포인트) 님이 2013년 4월 29일 질문

2개의 답변

0 추천
-keep interface com.test.proguard.A$B

inner class는 구분자로 $를 사용합니다.
레오나 (3,290 포인트) 님이 2013년 4월 29일 답변
그것은 알고있습니다만 그것의 상위 개념인 com.test.proguard 안의 모든 파일로 대상을 삼았습니다.
아무튼 다른 방법으로 해결되었습니다.
답변 감사합니다.
0 추천
자답입니다.

 

proguard.cfg파일에서

 

-keepattributes Signature, *Annotation*, InnerClasses을 추가하였더니 inner class가 keep되었습니다.

 

기존에는

-keepattributes Signature, *Annotation* 이렇게만 되있었습니다.

 

InnerClasses 항목만 추가하였더니 해결되었습니다.
슈퍼클래스 (360 포인트) 님이 2013년 4월 29일 답변
...