2017-05-04 22 views
0

我必须找到一个奇怪的错误,这是很难:-(流被重置:空

在我的Android应用我用Retrofit2Moshi做访问API,我也用proguard-android-optimize.txt,使我的应用程序干净,小。 。在我proguard-rules.pro我:

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

有了这种结合,当我试图访问API我得到这个错误stream was reset: null

要解决它,我必须删除从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已经打印出一个警告。