有没有什么简单的方法可以在开发过程中关闭Crashlytics Android SDK ?
我不希望每次我做一些愚蠢的事情时它都会崩溃
另一方面,我不想注释掉Crashlytics.start(),可能会忘记取消注释并提交
有没有什么简单的方法可以在开发过程中关闭Crashlytics Android SDK ?
我不希望每次我做一些愚蠢的事情时它都会崩溃
另一方面,我不想注释掉Crashlytics.start(),可能会忘记取消注释并提交
当前回答
这里有很多好的答案,但对于我的测试,我使用内部测试和实验室外测试的调试版本,其中崩溃日志仍然非常有用,我仍然希望报告它们。就像OP一样,我所希望的是在活跃的开发过程中禁用它们,因为我经常导致和快速解决崩溃。
不是删除所有调试崩溃,您可以选择仅在设备连接到开发机器时禁用报告,使用以下代码。
if (!Debug.isDebuggerConnected()) {
Fabric.with(this, new Crashlytics());
}
其他回答
我们可以使用fabric的isDebuggable()方法。
import static io.fabric.sdk.android.Fabric.isDebuggable;
if(! isDebuggable()){
// set Crashlytics ...
}
快乐编码:)
看看最新的医生。 https://docs.fabric.io/android/crashlytics/build-tools.html gradle-advanced-setup。
除了在构建中添加ext.enableCrashlytics = false。你需要做的成绩,
Crashlytics crashlyticsKit = new Crashlytics.Builder()
.core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
.build();
// Initialize Fabric with the debug-disabled crashlytics.
Fabric.with(this, crashlyticsKit);
Add this to your app’s build.gradle: android { buildTypes { debug { // Disable fabric build ID generation for debug builds ext.enableCrashlytics = false ... Disable the Crashlytics kit at runtime. Otherwise, the Crashlytics kit will throw the error: // Set up Crashlytics, disabled for debug builds // Add These lines in your app Application class onCreate method Crashlytics crashlyticsKit = new Crashlytics.Builder() .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()) .build(); // Initialize Fabric with the debug-disabled crashlytics. Fabric.with(this, crashlyticsKit); In AndroidManifest.xml, add <meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
如果你只想在你的IDE上做这件事,另一种方法是注销插件。显然,它将停止发送报告,而您正在生成构建,无需再次登录。
我从Crashlytics找到了解决方案(与Fabric集成)
将以下代码放在应用程序类onCreate()中
Crashlytics crashlytics = new Crashlytics.Builder().disabled(BuildConfig.DEBUG).build();
Fabric.with(this, crashlytics);
编辑:
在Crashalitics 2.3及以上版本中,这是不推荐的。正确的代码是:
CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build();
Fabric.with(this, new Crashlytics.Builder().core(core).build());
or
Fabric.with(this, new Crashlytics.Builder().core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()).build());
(复制自Crashlytics deprecated method disabled())
EDIT2:
你也可以选择将它添加到gradle中的buildType中。这个命令禁止发送crashlytics映射文件,并为每个构建生成一个ID,这可以加快那些风格的gradle构建。(它不会在运行时禁用Crashlytics。)请看迈克B的回答。
buildTypes {
release {
....
}
debug {
ext.enableCrashlytics = false
}
}