2017-05-04 3 views
0

내가 가지고 내 안드로이드 응용 프로그램에서스트림 재설정되었습니다 : 널 (null)

은 내가 API에 액세스 할 MoshiRetrofit2를 사용 :-(힘들었다 이상한 버그를 찾기 위해 나는 또한 내 애플 청결하게 proguard-android-optimize.txt를 사용하여 작은. . 그리고 내 proguard-rules.pro에서 내가 가진 : 나는 API에 액세스하려고 할 때이 오류 stream was reset: null를 얻을이 조합으로

-assumenosideeffects class timber.log.Timber { *; } 
-assumenosideeffects class android.util.Log { *; } 

이 문제를 해결하려면 내가 m에서이 assumenosideeffects 줄을 제거해야합니다. y proguard 설정. 하지만 왜? Proguard가 로깅 방법을 제거 할 때 왜이 네트워크 문제가 발생하는지 알 수 있습니까?

답변

1

와일드 카드 *은 수퍼 클래스의 메서드를 포함하여 모든 메서드 (예 : Object#wait())를 찾습니다. 당신은 정말 당신이 명시 적으로 당신이 호출을 제거하려는 방법을 나열해야하므로, 그 호출을 제거하지 않는 : 당신이 와일드 카드를 지정하는 경우

-assumenosideeffects class android.util.Log { 
    public static boolean isLoggable(java.lang.String, int); 
    public static int v(...); 
    public static int i(...); 
    public static int w(...); 
    public static int d(...); 
    public static int e(...); 
} 

ProGuard에서 이미 경고를 출력합니다.