【问题标题】:Integrating Crashlytics to library project将 Crashlytics 集成到库项目中
【发布时间】:2015-03-03 09:52:07
【问题描述】:

我有一个没有任何活动/服务的库项目(自定义视图库项目)。我想将 Crashlytics SDK 集成到我的库中。当我尝试通过 Crashlytics 插件(工具栏中的图标)为 Android Studio 添加它时,它只停留在"Checking" 上,用于"Select a kit to install"。 问题是如何将 Crashlytics 添加到我的 Android 库项目中?

最好的问候

【问题讨论】:

    标签: android crashlytics


    【解决方案1】:

    可以在使用模块的父应用的帮助下完成。

    • 使用正常步骤在父级上设置 Firebase。
    • 将此添加到库模块的build.gradle
      implementation 'com.google.firebase:firebase-core:16.0.1'
      implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'
    
    • 使用此静态变量在库模块中创建一个类。 public static Crashlytics crash;
    • 在父应用程序类中,将Crashlytics.getInstance(); 分配给该变量。
    • 库模块可以在库中的任何位置调用crash.core.logException(e); 并发送到 Firebase 控制台 - 但包括一个空检查以防万一。在没有父应用的情况下调用库测试方法。
    • 其他未处理的异常(例如库中的throw new RuntimeException("test");)也应显示在控制台中。

    【讨论】:

    • 为什么不使用 Crashlytics.logException() 代替?它是静态的,因此请仅使用上面列表中的第 1 点和第 2 点。
    【解决方案2】:

    您目前需要一个应用模块,即使您的意图是仅将 Crashlytics 集成到您的库中。如果你只有图书馆,那么没有合理的方法可以做到这一点,至少还没有正式的方式。

    请参阅below 以首先在应用程序端生成必要​​的东西,然后将(其中一些)移动到您的库中,例如初始化。

    当您载入套件时,Fabric 会在其中设置初始化代码 基础项目,而不是库。 Here's how you'd do it...

    【讨论】:

    • 请注意,'repositories { maven { url 'maven.fabric.io/public' }}' 必须在从 root-library-project 到 app-project 的所有 library-projects 中设置,对于链其中包含带有 crashlytics 的编译依赖项
    【解决方案3】:

    使用以下 gradle 创建一个 android 库项目:

    apply plugin: 'com.android.library'
    <-- other project specific includes -->
    
    buildscript {
      repositories {
        maven { url 'https://maven.fabric.io/public' }
      }
    
      dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
      }
    }
    
    apply plugin: 'io.fabric'
    
    repositories {
      maven { url 'https://maven.fabric.io/public' }
    }
    
    dependencies {
      compile('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
        transitive = true;
      }
    }
    

    在你的基础项目中添加 maven 行到 allProjects/repositories:

    allprojects {
      repositories {
          jcenter()
          mavenCentral()
          maven { url 'https://maven.fabric.io/public' }
      }
    }
    

    从您的应用程序项目中,将依赖项添加到新创建的库项目中。 例如:

    compile project(':crashlytics_lib')
    

    【讨论】:

    • 我在哪里为 carshlytics 添加密钥?因为在应用程序中,我们将其密钥添加到清单应用程序标签中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    相关资源
    最近更新 更多