gpt4 book ai didi

android - 当 minifyenabled 在 android 中为真时,如何在发布 apk 后关闭 log cat 输出

转载 作者:行者123 更新时间:2023-11-29 00:09:56 25 4
gpt4 key购买 nike

首先,请不要将其视为重复问题,因为我已经尝试了该论坛的所有解决方案,但未能得到我的答案。

从我制作的 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 并在我的设备上运行时,所有日志仍然显示!我现在有什么新的事情要做吗?

最佳答案

-assumenosideeffects 在设置 -dontoptimize 时被跳过(relevant documentation),我相信这是 Android 提供的标准 ProGuard 配置文件的默认值。

如果您想使用-assumenosideeffects,那么您必须使用{your- sdk-dir}/tools/proguard/ 目录。这也将应用于您在应用程序项目中使用的任何库,因此如果您担心的话,它们的日志记录也将被删除。

作为替代方案,您可以为 Android 的 Log 使用包装类,将所有调用包装在检查 BuildConfig.DEBUG 标志的条件中,这更好,因为您将拥有这些检查的单一访问点,而不是在你的类(class)中乱扔垃圾。

然而,值得注意的是,对于后一种解决方案,您不会获得发布版本的性能改进,就好像您有大量日志记录,您在其中为消息连接字符串,这些仍将在运行时评估方法调用(即使它们永远不会被打印出来)。

关于android - 当 minifyenabled 在 android 中为真时,如何在发布 apk 后关闭 log cat 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31088772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com