流已重置:空
stream was reset: null
我有一个很难找到的奇怪错误:-(
在我的 Android 应用程序中,我使用 Retrofit2 with Moshi 访问 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 删除日志记录方法时我会遇到这个网络问题?
通配符*
匹配所有方法,包括super类中的方法,如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 已经打印出警告。
我有一个很难找到的奇怪错误:-(
在我的 Android 应用程序中,我使用 Retrofit2 with Moshi 访问 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 删除日志记录方法时我会遇到这个网络问题?
通配符*
匹配所有方法,包括super类中的方法,如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 已经打印出警告。