【问题标题】:How to print log inside release aar如何在release aar中打印日志
【发布时间】:2022-01-22 12:54:21
【问题描述】:

我想构建一个 apk,在其中我需要在其中使用 release aar。 aar 必须是发布版本,因为我需要缩小和混淆它。

但我想打印网络日志的日志,看看我的混淆是否不会影响请求负载。

我尝试使用 System.out.println,但我看不到任何来自 aar 的日志。

有什么建议吗?

【问题讨论】:

  • 写入文件
  • 您可以使用 Timber 日志库(或任何其他库)将日志保存在文件中。

标签: android logging logcat dexguard


【解决方案1】:

您应该可以在manifest/build.gradle 中打开它。 Enable LogCat on Release Build in Android Studio

多年来,它发生了一些变化,因此您可能需要考虑的不仅仅是公认的答案。

你也可以使用这个库https://github.com/tony19/logback-android

它可以在设备上创建日志文件,您可以打开和检查。

【讨论】:

  • 这个apk是debug apk,但是我在libs文件夹中使用的aar是release build aar,它构建。我应该检查 gradle 吗?
  • 您的库作为调试中的应用程序不会停止日志。
  • 我想打印库中的日志,库现在是release build。现在我在 dist/SampleApp/app/src/main/AndroidManifest.xml 中设置了android:debuggable="true"。但它仍然不打印任何日志。您是否尝试过这种方法并且可以确认它有效?
  • Francis 有正确的答案,但出于安全原因,当您发布应用程序时,请将其关闭..
【解决方案2】:

您可以使用 gradle build config 字段来启用/禁用日志打印。
Default value for Gradle buildConfigField boolean used across flavors
首先创建一个带有布尔参数的日志包装函数,true 表示启用日志打印。然后您可以为您的 aar 创建一个 init 函数,您可以在其中设置日志启用参数。
同时在你的 app.gradle 中定义一个构建配置字段:

 debug {
        buildConfigField "boolean", "ENABLE_LOG", "true"
    }
 release {
        buildConfigField "boolean", "ENABLE_LOG", "false"
    }

然后在Application.oncreate()上拨打aar.init(BuildConfig.ENABLE_LOG)

【讨论】:

    猜你喜欢
    • 2017-08-10
    • 1970-01-01
    • 2011-08-30
    • 2011-04-26
    • 2012-08-22
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    相关资源
    最近更新 更多