2012-08-22 2 views
0

Eclipse에서 proguard.cfg 파일을 구성하여 일부 내부 클래스에 대해 클래스 또는 클래스 멤버의 이름을 변경하지 않도록 설정하려고합니다.일부 내부 클래스 만 남겨두기위한 Proguard 구성

-keepclasseswithmembers public class com.mycorp.android.mapper.APIHelper$* 

하지만 작동하지 않습니다

그래서 내 경우에는 내부 클래스는 내가이 시도 com.mycorp.android.mapper.APIHelper

에 모두 있습니다. 올바른 구문은 무엇입니까?

편집 : 나는 또한 이러한 클래스는 다음 빈 인터페이스를 구현하고 가진 시도했습니다 시도 :

-keepclasseswithmembers class * implements com.mycorp.android.JSONSerializable { 
    *; 
} 

그와 행운 중 하나.

+0

업데이트 : 문제는 GSON 및 Proguard에서 발생하는 것으로 보입니다. 설정하고 더 멀지 만 완벽하지는 않은 gson 특정 라인을 추가했습니다. – Fraggle

답변

0

나는 -keepclasseswithmembers 대신 -keep을 사용해야한다고 생각합니다 (Proguard 설명서 here 기준).

+0

아니, 나는 단지 그것을 지키려고 노력했다. 그리고 거기에서도 운이 없다. – Fraggle

+0

흥미롭게도 .. [클래스 사양] (http://proguard.sourceforge.net/manual/usage.html#classspecification) 섹션을 자세히 살펴 보거나 [Android 애플리케이션 예제] (http : // proguard. sourceforge.net/manual/examples.html#androidapplication)을 참조하십시오. – Joe

+0

GSON과 Proguard를 함께 사용하면 문제가있는 것 같습니다. Proguard에 일부 gson 설정 항목을 추가하여 이전보다 조금 더 많이 얻었습니다. 아직 완벽하지 않습니다. – Fraggle

2

보관할 회원을 지정해야합니다. 그것이 전부라면 나는 다음과 같은 것이 효과가 있다고 믿는다. APIHelper 클래스 자체는 유지하지 않으며 내부 클래스와 멤버 만 유지합니다.

-keep public class com.mycorp.android.mapper.APIHelper$* { 
    *; 
}