stream重置:null

时间:2017-05-04 23:31:08

标签: android proguard retrofit2 android-proguard

我有一个很难找到的奇怪的错误: - (

在我的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

要解决此问题,我必须从我的proguard配置中删除此assumenosideeffects行。但为什么?当proguard删除日志记录方法时,有没有人知道为什么我会遇到这个网络问题?

1 个答案:

答案 0 :(得分: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已经打印出警告。