【问题标题】:Play console reports crashes that occur during developmentPlay 控制台报告开发期间发生的崩溃
【发布时间】:2017-11-30 07:35:48
【问题描述】:

我在 Google Play 控制台中看到很多崩溃和性能相关问题,其中大部分是我在开发过程中遇到的。

我也在使用 crashlytics,它可以在调试期间禁用 crashlytics,但我无法为 Play Console Crash Reporting tool 找到类似的选项

【问题讨论】:

  • 除了你的问题,你是从 Play 商店调试你的生产版本吗?
  • @Ch4t4r :我已经从 gradle 更改了版本代码。在生产中,版本代码设置为 1.9.7,在开发版本代码设置为 1.9.8
  • 那么您的游戏控制台应该不会收到该版本的崩溃。仅当设备安装了播放服务并且应用程序安装在播放商店上时才会发送崩溃。您仍然收到该版本的崩溃(我猜您检查的是真的吗?)表明您正在使用相同的证书进行调试和发布。真的吗?如果没有,您可能已经发现了某种错误。
  • 是的,目前它设置为1.9.8,但我检查了 git 历史记录,它在生产发布一周后更新。可能是这个问题,你能告诉我证书的事情吗?当我生成SignedAPK时,我当时选择了.jks文件。
  • 所有 Android 应用程序都已签名。调试版本使用默认证书来签署 .apk(在 ~/.android/debug.keystore 中)。对于签名,您使用 - 如您所述 - 与调试不同的密钥库(jks = java KeyStore)。如果您已将应用程序配置为始终使用相同的密钥库进行发布和调试,我会理解您的问题,但是根据您迄今为止提供的所有信息,您在控制台中看到崩溃没有合乎逻辑的理由 - 毕竟,当在发行版上安装调试版本时,必须删除一个(因为签名不匹配发行版调试)。

标签: android performance android-layout google-play google-play-console


【解决方案1】:

是的,您可以在调试模式下禁用 crashlytics。

把它放在你的类中,在onCreate方法中扩展Application类

// Set up Crashlytics, disabled for debug builds
        Crashlytics crashlyticsKit = new Crashlytics.Builder()
                .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
                .build();
        Fabric.with(this, crashlyticsKit);

要在 playstore 中禁用,我们可以通过在调试和发布模式下区分 applicationId` 来实现:

android {
    ...
    defaultConfig {
        applicationId "my.app.package"
        ...
    }
    ...
    buildTypes {
        release {
            ...
        }
        debug {
            ...
            applicationIdSuffix ".dev"
        }
    }
...
}

注意:此解决方案在您不使用任何库时有效,但在使用配置了 applicationId 的库时可能会中断,例如,如果您使用计费应用程序库,则使用此方法您可能无法再在您的应用中测试应用计费。

【讨论】:

  • 谢谢,但这会禁用 crashlytics,我需要禁用 Google Play Console 崩溃报告工具。
  • 这需要更多的更改。我想,我还需要更改play-services.json 文件。错误:任务“:app:processDebugGoogleServices”执行失败。 > 找不到与包名称“com.myapp.app1”匹配的客户端
猜你喜欢
  • 2017-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-23
  • 2017-01-01
  • 2023-03-31
  • 2018-07-25
  • 2016-01-22
相关资源
最近更新 更多