我在我正在从事的一个项目中遇到了一个奇怪的问题。
我的问题 :
- 我有很多Log.e,Log.i,Log.d
- 我需要在发布版本中删除它
- 我不愿意手动删除所有日志,因为这是一个令人头疼的问题
为什么我提出这个问题:
-
是否可以在不使用 Proguard 的情况下删除 apk 发布版本中的所有日志 {因为使用 proguard 会刺激很多规则和规定,我个人不喜欢它 ;-( }
-
任何 3rd 派对库都可以实现这一点
- 我尝试使用木材,但我认为它不是那么容易实现
注意:有些人对这个问题投了反对票。我有一个建议给他们,如果我问任何不好或错误的事情,最好投反对票。我要求替代解决方案。请不要气馁我们。
如果你真的坚持不使用Proguard,你可以围绕内置的Log
框架构建一个"包装器"。然后,您将调用包装器,而不是调用 Android Log
语句。例如:
public class LogWrapper {
public static void d(String tag, String message) {
if (BuildConfig.DEBUG) {
Log.d(tag, message);
}
}
}
但是,我强烈建议使用 proguard,因为这种方法容易出错,并且要求您记得每次需要记录某些内容时调用 LogWrapper
您可以使用 progruard 规则来消除对登录发布版本的调用,请参阅此答案 https://stackoverflow.com/a/2466662/4428159
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}