Ada*_*amK 21

是的,Crashlytics确实与Android Instant Apps配合使用,实际上它是此阶段推荐的崩溃报告解决方案,因为它已经过测试并且运行正常.

对于设置:

步骤1

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

第2步

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

...
android {
    ...
}
crashlytics { instantAppSupport true }
...
Run Code Online (Sandbox Code Playgroud)

第3步(可选,但建议)

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

compile 'com.google.android.instantapps:instantapps:1.1.0'
Run Code Online (Sandbox Code Playgroud)

注意:要使用此依赖关系,您需要将较新的maven.google.com存储库添加到gradle文件中(如果尚未添加)(请参阅此处了解详细信息).

然后在您的代码中,在设置Crashlytics之后,如果当前运行是Instant App,则设置一个布尔值来记录:

Crashlytics.setBool("InstantApp", InstantApps.isInstantApp(context));
Run Code Online (Sandbox Code Playgroud)

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

在使用记录以下错误的Crashlytics和Instant Apps时, 最近的工具更新似乎引发了一个新问题:

这个应用程序依赖于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.+'
Run Code Online (Sandbox Code Playgroud)

您不应该做任何事情,只需同步您的构建以通过修复下载更新的插件.

  • 完成所有这些步骤后,我的即时应用程序开始崩溃,这个应用程序依赖于Crashlytics.请通过https://fabric.io/sign_up注册访问,安装Android构建工具并要求团队成员邀请您加入此应用的组织. (4认同)
  • 最近版本的Instant Apps/Studio中似乎存在一个错误,即从生成的APK中删除生成的Crashlytics密钥.在修复之前,请尝试将其作为解决方法.构建完成后,找到文件"com_crashlytics_build_id.xml",打开它,从那里复制<string />并将其粘贴到功能模块的strings.xml文件中.重新构建并运行. (3认同)