19

Crashlytics是否可以与Google Play Instant一起使用?如果可以,您如何正确设置您的项目?

4

3 回答 3

21

是的,Crashlytics 确实适用于 Android 即时应用程序,事实上它是现阶段推荐的崩溃报告解决方案,因为它已经过测试并且运行良好。

对于设置:

步骤1

在您的基本功能模块中打开该build.gradle文件,然后按照公共文档站点上的步骤正常配置 Crashlytics。

第2步

在基本功能模块build.gradle文件的顶层,添加以下 Crashlytics 标志:

...
android {
    ...
}
crashlytics { instantAppSupport true }
...

第 3 步(可选但推荐)

根据文档,在您的基础库项目中添加 Instant App 库依赖项(build.gradle如果尚未存在):

compile 'com.google.android.instantapps:instantapps:1.1.0'

注意:要使用此依赖项,您需要将较新的maven.google.com存储库添加到您的 gradle 文件中(如果您还没有的话,请参见此处了解详细信息)。

然后在您的代码中,设置 Crashlytics 后,设置一个布尔值以记录当前运行是否为 Instant App:

Crashlytics.setBool("InstantApp", InstantApps.isInstantApp(context));

2017 年 8 月更新 - 破坏支持的新问题

在使用记录以下错误的 Crashlytics 和即时应用程序时, 最近的工具更新似乎导致了一个新问题:

这个应用程序依赖于 Crashlytics。请在https://fabric.io/sign_up注册访问权限 ,安装 Android 构建工具并让团队成员邀请您加入此应用的组织。

在问题得到解决之前,请尝试以下解决方法:构建后,找到文件com_crashlytics_build_id.xml,打开它,<string>从那里复制包含您的 Fabric 密钥的文件并将其粘贴到您strings.xml的功能模块的普通文件中。然后重新构建并运行。

2017 年 11 月 15 日更新 - 已修复问题

从 Fabric gradle 插件 v1.24.5 开始,上述问题现已修复。因为你的 gradle 文件应该有:

classpath 'io.fabric.tools:gradle:1.+'

您不需要做任何事情,只需同步您的构建以拉下更新的插件并进行修复。

于 2017-06-05T04:50:45.077 回答
2

除了接受的答案所说的之外,我还需要在应用程序(apk)模块的 build.gradle 文件中添加下一行以使其运行。

repositories {
    maven { url 'https://maven.fabric.io/public' }
}
于 2017-07-19T14:21:33.730 回答
0

我刚刚用 1.24.5 测试过,没问题。

我能够像这样设置我的项目:

  1. 在基本模块中:https ://fabric.io/kits/android/crashlytics/install
  2. 如何将 Crashlytics 与 Android Instant Apps 集成?
    • 添加到 base/build.gradle:
      • crashlytics { instantAppSupport true }
      • 编译 'com.google.android.instantapps:instantapps:1.1.0' (*1.0.0 也可以)
    • 另外添加到基础模块应用程序类:
      • Crashlytics.setBool("InstantApp", InstantApps.isInstantApp(context));

我构建了测试即时应用程序,我触发了崩溃,我的仪表板记录了它。

如果任何问题仍然存在,请在Google 问题跟踪器上报告,他们将重新打开以进行检查。

于 2017-12-16T06:15:28.000 回答