Boa*_*rdy 5 android firebase crashlytics
我正在开发一个android应用程序,并集成了firebase和firebase crashlytics SDK。
我想允许用户禁用崩溃报告(以确保GDPR合规性-我认为崩溃报告与GDPR相关),因此需要一种方法,使用户能够通过应用设置禁用它。
我在https://firebase.google.com/docs/crash/disable-sdk上找到了文档,但是当我尝试该行时:
FirebaseCrash.setCrashCollectionEnabled(true);
Run Code Online (Sandbox Code Playgroud)
Android Studio给我错误 cannot resolve symbol 'FirebaseCrash'
这需要在应用程序的运行时以编程方式完成。
小智 18
在您的模块中构建 gradle...
release {
//true value to send the crashlytics to the firebase
manifestPlaceholders = [crashlyticsCollectionEnabled: "true"]
}
debug {
//false value to stop sending the crashlytics to the firebase
manifestPlaceholders = [crashlyticsCollectionEnabled: "false"]
}
Run Code Online (Sandbox Code Playgroud)
在清单中
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="${crashlyticsCollectionEnabled}" />
Run Code Online (Sandbox Code Playgroud)
Ash*_*nki 10
在运行时禁用Crashlytics
// Set up Crashlytics, disabled for debug builds
Crashlytics crashlyticsKit = new Crashlytics.Builder()
.core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
.build();
Fabric.with(this, crashlyticsKit);
Run Code Online (Sandbox Code Playgroud)
防爆
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set up Crashlytics, disabled for debug builds
Crashlytics crashlyticsKit = new Crashlytics.Builder()
.core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
.build();
Fabric.with(this, crashlyticsKit);
setContentView(R.layout.activity_main);
}
Run Code Online (Sandbox Code Playgroud)
更多
boolean Agrees = value;
if(Agrees)
{
Fabric.with(this,new Crashlytics());
}
else
{
CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(true).build();
Fabric.with(this, new Crashlytics.Builder().core(core).build());
throw new RuntimeException("why doesn't this show up in Firebase Crashlytics?");
}
Run Code Online (Sandbox Code Playgroud)
编辑2
参考:无法通过DEBUG构建禁用带有Firebase的Fabric的Crashlytics
在火力地堡Crashlytics文件解释说,一旦报告是在应用程序会话中启用,它不能被禁用。
默认情况下,在创建实例之前执行的ContentProvider命名CrashlyticsInitProvider中启用了Crashlytics报告Application。 CrashlyticsInitProvider启用或禁用基于元数据值的报告firebase_crashlytics_collection_enabled,默认情况下为true。
如果要禁用报告功能,则必须提供清单元数据并将其设置为false,这一点至关重要:
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="false" />
Run Code Online (Sandbox Code Playgroud)
在应用初始化期间在logcat中查找消息:
CrashlyticsInitProvider: CrashlyticsInitProvider initialization successful
Run Code Online (Sandbox Code Playgroud)
如果存在该消息,firebase_crashlytics_collection_enabled则为true。如果消息不存在,则您已成功设置了元数据以禁用崩溃报告。
如果元数据丢失或设置为true,则无法使用调用禁用代码中的报告Fabric.with(...)。
在对另一个答案的评论中,您表示您尝试使用元数据禁用报告,但未成功。检查拼写错误,并确保将声明正确放置在<application>元素中。在我的测试中,我能够使用元数据禁用报告,然后在运行时启用。
Ani*_*OUK 10
使用新的 Firebase Crashlytics SDK,要禁用崩溃报告,您必须使用此方法:setCrashlyticsCollectionEnabled
if (BuildConfig.DEBUG) {
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(false)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2001 次 |
| 最近记录: |