将Crashlytics集成到库项目中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Crashlytics集成到库项目中相关的知识,希望对你有一定的参考价值。
我有一个没有任何活动/服务的图书馆项目(自定义视图库项目)。我想将Crashlytics SDK集成到我的库中。当我尝试通过android Studio的Crashlytics插件(工具栏中的图标)添加它时,它只停留在"Checking"
的"Select a kit to install"
上。问题是如何将Crashlytics添加到我的Android库项目中?
最好的祝福
答案
您现在需要一个应用程序模块,即使您的目的是仅将Crashlytics集成到您的库中。如果您只拥有图书馆,那么没有合理的方法可以做到这一点,至少在官方上是这样。
请参阅below,首先在应用程序端生成必要的东西,然后将其中的一些移动到库中,例如初始化。
当您使用工具包时,Fabric会在基础项目内设置初始化代码,而不是库。 Here's how you'd do it...
另一答案
使用以下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')
另一答案
可以在使用该模块的父应用程序的帮助下完成。
- 使用常规步骤在父级上设置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;
- 在父类Application类中,将
Crashlytics.getInstance();
分配给该变量。 - 库模块可以在库中的任何位置调用
crash.core.logException(e);
并发送到Firebase控制台 - 但是包括空检查以防万一。在没有父应用程序的情况下调用库测试方法。 - 其他未处理的异常,例如库中的
throw new RuntimeException("test");
也应该出现在控制台中。
以上是关于将Crashlytics集成到库项目中的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Crashlytics 集成到 iOS 框架项目中?
无法将 Eclipse 中的 crashlytics 与 ADT 集成