【问题标题】:Log for android app in play console vitals在 Play Console Vitals 中记录 Android 应用程序
【发布时间】:2021-05-17 05:08:24
【问题描述】:

我在 google play 中有一个应用程序,出于某种原因,我得到了一个罕见的 IllegalArgumentException 用于具有多个参数的方法。根据 google 统计数据(在我的应用程序使用情况中),它发生在 0.004%,所以我无法重现它以知道如何解决它,并且 google play vitals 没有提供任何关于 arg 是 NULL 的可用信息。

有很多 log.X (x = d, e, w...) 并且我知道基础知识,但我不明白的是,我可以使用其中的一些来获取有关参数的信息吗? NULL 用户何时使用该应用程序?我可以写一个log.e("TAG", arg4.toString()),把它放在try/catch 块中并构建它以用于生产,所以当崩溃发生时,它会在google play vitals 中打印arg4 的值?

如果不是,在这种罕见的情况下,我如何找出哪个 arg 是 NULL

【问题讨论】:

    标签: android logging google-play-console


    【解决方案1】:

    Play 控制台中的 Vitals 部分报告崩溃,而不是日志,因此您可以捕获异常并在消息中抛出另一个包含更多数据的异常,但 AFAIK 异常消息通常在显示在 Play 中之前被删除控制台,以防它泄露有关用户的私人数据。

    另一种选择是与 Firebase 集成并存储和收集数据,但这可能需要付出更多的努力。

    如果我是你,我会检查源代码(你的应用程序、你正在使用的库或 Android 源代码)哪一行引发了非法参数异常,并检查在这一行检查了哪些参数。

    最后,如果这不是一个选项,您可以在调用该方法之前自己在代码中抛出异常,检查每个参数是否为非空。根据抛出的那一行,你会知道哪个参数是空的。

    【讨论】:

    • 这就是问题所在,我可以自己抛出异常,但所有参数都可以,我无法重现其中一个 args 发生某些事情为 NULL 的情况
    • 有些东西没有加起来。您是说抛出 IllegalArgumentException 是因为参数为 null,但您还说如果在调用方法之前检查所有参数均非 null,则没有任何内容为 null。其中一个陈述必然是错误的。
    • 就像我在上面写的那样,根据谷歌统计,这种 IAE 发生率为 0.004%。当我检查时,一切正常,但每隔几个月我就会在我的方法中使用 IAE 收到应用程序崩溃报告。
    • 因此,在这 0.004% 的情况下,您检查空值的代码应该会捕获一些东西,并且您将能够通过它抛出的行找到异常,这样您就可以知道哪个参数为空。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    相关资源
    最近更新 更多