Android gradle删除日志

Android gradle删除日志,android,android-studio,gradle,android-gradle-plugin,Android,Android Studio,Gradle,Android Gradle Plugin,我已经在android中以发布模式创建了一个应用程序。 在发布模式下发布应用程序时,我希望删除项目中的所有日志。 我如何在不复制代码的情况下完成它? 我可以使用Gradle删除日志吗?您可以使用BuildConfig.DEBUG变量,该变量对于调试版本为true,否则为false 您可以有一个常量文件,其中包含一个变量,如 public static final LOG_ENABLED = BuildConfig.DEBUG; 然后在打印日志之前检查变量 if(Constants.LOG_EN

我已经在android中以发布模式创建了一个应用程序。 在发布模式下发布应用程序时,我希望删除项目中的所有日志。 我如何在不复制代码的情况下完成它?
我可以使用Gradle删除日志吗?

您可以使用BuildConfig.DEBUG变量,该变量对于调试版本为true,否则为false

您可以有一个常量文件,其中包含一个变量,如

public static final LOG_ENABLED = BuildConfig.DEBUG;
然后在打印日志之前检查变量

if(Constants.LOG_ENABLED){
   // print Log
}

您只能在调试模式下使用ProGuard或Timber和set pant。您是在谈论logcat还是其他类型的日志记录?请注意日志级别。在build.gradle中将debugable设置为false时,将删除所有log.d。log.e和其他文件将保留。通常这很好。我不想在发布模式下看到代码中的日志。是的,这就是BuildConfig.DEBUG的作用。对于发布版本,它的值将为false。因此,Constants.LOG_ENABLED将为false。我将尝试更清楚一些。当我创建一个apk并进行一些反向工程时,我仍然可以看到日志数据。我不想让别人看到我在日志上写的内容。它应该被minifyEnabled(又名proguard)删除,因为当Log_ENABLED在任何情况下都返回false时,这是一个无法获得的声明。@SatelliteSD的评论必须澄清您的疑问。这里有更详细的解释。在您的渐变文件中,添加类似以下内容的android{buildTypes{release{minifyEnabled true shrinkResources true}}}}minifyEnabled将删除无法访问的代码,因为在我们的示例中,对于发布版本,LOG_ENABLED总是false。