Integrating Crashlytics to library project

前端 未结 3 788
滥情空心
滥情空心 2021-02-18 18:24

I have a library project (a custom view library project) which doesn\'t have any Activities/services. I want to integrate Crashlytics SDK to my library. When I try to add it via

相关标签:
3条回答
  • 2021-02-18 18:53

    It can be done, with the help of the parent app that consumes the module.

    • Set up Firebase on the parent using the normal steps.
    • Add this to the build.gradle of the library module.
      implementation 'com.google.firebase:firebase-core:16.0.1'
      implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'
    
    • Create a class in the library module with this static variable. public static Crashlytics crash;
    • In the parents Application class, assign Crashlytics.getInstance(); to that variable.
    • The library module can call crash.core.logException(e); anywhere in the library and sent off to the Firebase console - but include a null check in case eg. library test methods are being called without a parent app.
    • Other unhandled exceptions eg throw new RuntimeException("test"); in the library should also show up in the console.
    0 讨论(0)
  • 2021-02-18 19:08

    Create an android library project with the following gradle:

    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;
      }
    }
    

    To your base project add the maven line to allProjects/repositories:

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

    From your application project add a dependency to the newly created library project. for example:

    compile project(':crashlytics_lib')
    
    0 讨论(0)
  • 2021-02-18 19:19

    You need an app module at the moment, even if your intention is to integrate Crashlytics only in your library. If what you only have is the library, there is no reasonable way of doing that, not officially yet at least.

    See below for generating the necessary stuff first in the app side and then moving (some of them) towards your library such as the initialization.

    When you onboard a kit, Fabric sets up the initialization code inside the base project, not the library. Here's how you'd do it...

    0 讨论(0)
提交回复
热议问题