2014-07-08 4 views
0

/ui/cinema/model/패키지에는 난이도가 떨어지지 않기를 바라는 여러 클래스가 있습니다. 그래서 proguard 설정 파일에 다음 라인을 선언합니다. :..안드로이드 : 왜 내 클래스가 여전히 혼란 스럽습니까?

-keep 공용 클래스 com.example.ui.cinema.model을 ** {*}

-keep 공용 클래스 com.example.ui.cinema.model ** $의 * { *;}

"CinemaCityModel"을 제외한 대부분의 클래스는 잘 작동합니다.

package com.example.ui.cinema.model; 
public class CinemaCityModel 
{ 
    public static final String CUR_CITY_NAME_SORT="CURRENT"; 
    public static final String HOT_CITY_NAME_SORT="HOT"; 

    private String CityId; 
    private String CityName; 
    private String NameSort; 

    public String getCityId() 
    { 
     return CityId; 
    } 

    public void setCityId(String cityId) 
    { 
     CityId = cityId; 
    } 

    public String getCityName() 
    { 
     return CityName; 
    } 

    public void setCityName(String cityName) 
    { 
     CityName = cityName; 
    } 

    public String getNameSort() 
    { 
     return NameSort; 
    } 

    public void setNameSort(String nameSort) 
    { 
     NameSort = nameSort; 
    } 

} 

나는 APK를 안티 컴파일하고 CinemaCityModel을 찾을 수 없습니다. 하지만 내 소스 코드의 패키지에 들어 있습니다. 그것은 난처 해하고 나는 왜 모른다. 누구든지 이걸 만났어? 도와주세요, 고마워요 :)

답변

0

proguard의 -keep 키워드는 클래스가 사용되지 않는 경우에만 최적화되지 않도록합니다.

(이것은 두 번째 줄을 의미하기 때문에, 첫 번째 줄이 충분한 사실) 당신은 당신의 구성이 실제로이 클래스를 보존 -dontobfuscate

+0

감사합니다. 그러나 Proguard Manual을 확인한 후 "입력 클래스 파일을 난독 화하지 않도록 지정합니다. 기본적으로 난독 화가 적용되며 클래스 및 클래스 멤버는 다양한 -keep 옵션으로 나열된 것을 제외하고 새로운 짧은 임의의 이름을받습니다. 소스 파일 이름, 변수 이름 및 줄 번호와 같은 디버깅에 유용합니다. ".... 그래서 내 CinemaCityModel은 난독해서는 안된다. 흥미로운 점은 해당 패키지의 다른 클래스가 CinemaCityModel을 제외하고이 규칙에 적용된다는 것입니다. – mianlaoshu

0

사용해야 난독 화되는 클래스를 방지합니다. proguard/seeds.txt에 나열되어 있어야합니다.

다음 사항을 다시 확인해야합니다. 제대로 컴파일되지 않았으므로 입력 내용에 누락 된 것일 수 있습니다. 또는이 경우 공개되지 않았거나 결국 다른 패키지에있을 수도 있습니다. 또는 디 컴파일러가 디 컴파일 된 클래스를 작성하지 못할 수도 있습니다.

관련 문제