首先,请不要将其视为重复的问题,因为我已经尝试了此论坛中的所有解决方案,但未能得到答案。
从我制作的 gradle.build 文件中:
minifyenabled 为 true,然后在我的项目的 proguard-rules.pro 文件中写入这行代码:
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** e(...);
public static *** i(...);
public static *** w(...);
public static *** v(...);
}
但这并没有改变我的项目中的任何内容,当我制作发行版 apk 并在我的设备上运行时,所有日志仍然显示!我现在有什么新的事情要做吗?
最佳答案
当设置 -dontoptimize
( relevant documentation ) 时,会跳过
-assumenosideeffects
,我相信这是 Android 提供的标准 ProGuard 配置文件的默认设置。
如果您想使用-assumenosideeffects
,那么您必须使用{your-中的
目录。这也将应用于您在应用程序项目中使用的任何库,因此如果您担心的话,它们的日志记录也将被删除。proguard-android-optimize.txt
配置文件sdk-dir}/tools/proguard/
作为替代方案,您可以使用 Android 的 Log
的包装类,将所有调用包装在检查 BuildConfig.DEBUG
标志的条件中,这更好,因为您将有一个这些检查的单一访问点,而不是将它们散布在您的类(class)中。
但值得注意的是,对于后一种解决方案,您不会获得发布版本的性能改进,就好像您有大量日志记录,在其中连接消息字符串时,这些仍将在运行时针对方法调用进行评估(即使它们永远不会被打印出来)。
关于android - 当 android 中 minifyenabled 为 true 时,如何在发布 apk 后关闭 log cat 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31088772/