为 Android 禁用 firebase crashlytics
Disable firebase crashlytics for Android
我正在开发 android 应用程序并集成了 firebase 和 firebase crashlytics SDK。
我想允许用户禁用崩溃报告(以确保符合 GDPR - 我假设崩溃报告与 GDPR 相关)因此需要一种方法让用户能够通过应用程序设置禁用它。
我在 https://firebase.google.com/docs/crash/disable-sdk 找到了文档,但是当我尝试时发现行:
FirebaseCrash.setCrashCollectionEnabled(true);
Android Studio 给我错误 cannot resolve symbol 'FirebaseCrash'
这需要在应用程序运行时以编程方式完成。
FirebaseCrash.setCrashCollectionEnabled(true);
在名为 Crashlytics 的新版 Firebase Crash 中不再受支持。更多 https://firebase.google.com/docs/crash/
FirebaseCrash.setCrashCollectionEnabled(true);
被
取代
Fabric.with(this, new Crashlytics());
在 运行 时间
禁用 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);
Ex
@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);
}
More
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?");
}
Edit 2
参考:
Firebase Crashlytics documentation 说明一旦在应用程序会话中启用报告,就无法将其禁用。
默认情况下,Crashlytics 报告在名为 CrashlyticsInitProvider 的 ContentProvider
中启用,它在您的 Application
实例创建之前执行。 CrashlyticsInitProvider 根据元数据值 firebase_crashlytics_collection_enabled
启用或禁用报告,默认情况下为 true。
如果您想禁用报告,清单元数据必须存在并设置为 false:
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="false" />
在应用程序初始化期间查看 logcat 消息:
CrashlyticsInitProvider: CrashlyticsInitProvider initialization successful
如果消息存在,则 firebase_crashlytics_collection_enabled
为真。如果消息不存在,则您已成功设置元数据以禁用崩溃报告。
如果元数据丢失或设置为 true,则您无法通过调用 Fabric.with(...)
.
在代码中禁用报告
在对另一个答案的评论中,您表示您尝试使用元数据禁用报告但没有成功。检查拼写错误并确保声明正确放置在 <application>
元素中。在我的测试中,我能够使用元数据禁用报告,然后在 运行 时间启用。
如果您想完全禁用 Firebase 崩溃报告并且也不必添加
com.crashlytics.sdk.android:crashlytics:2.9.1
依赖关系,那么:
将此添加到您应用的 build.gradle:
android {
// ...
defaultConfig {
manifestPlaceholders = [enableCrashReporting:"false"]
....
}
}
然后将其添加到您的 AndroidManifest.xml:
<application ...>
// ...
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="${enableCrashReporting}" />
<meta-data
android:name="firebase_analytics_collection_deactivated"
android:value="true"/>
</application>
在您的模块构建中 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"]
}
清单中
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="${crashlyticsCollectionEnabled}" />
用新的 Firebase Crashlytics beta 取代 Fabric:
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(false)
使用新的 Firebase Crashlytics SDK,要禁用崩溃报告,您必须使用此 method : setCrashlyticsCollectionEnabled
if (BuildConfig.DEBUG) {
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(false)
}
- 禁用自动数据收集(清单)
<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
- 如果不在您的应用程序上调试构建,请启用它。
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(!BuildConfig.DEBUG)
我正在开发 android 应用程序并集成了 firebase 和 firebase crashlytics SDK。
我想允许用户禁用崩溃报告(以确保符合 GDPR - 我假设崩溃报告与 GDPR 相关)因此需要一种方法让用户能够通过应用程序设置禁用它。
我在 https://firebase.google.com/docs/crash/disable-sdk 找到了文档,但是当我尝试时发现行:
FirebaseCrash.setCrashCollectionEnabled(true);
Android Studio 给我错误 cannot resolve symbol 'FirebaseCrash'
这需要在应用程序运行时以编程方式完成。
FirebaseCrash.setCrashCollectionEnabled(true);
在名为 Crashlytics 的新版 Firebase Crash 中不再受支持。更多 https://firebase.google.com/docs/crash/
FirebaseCrash.setCrashCollectionEnabled(true);
被
取代Fabric.with(this, new Crashlytics());
在 运行 时间
禁用 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);
Ex
@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);
}
More
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?");
}
Edit 2
参考:
Firebase Crashlytics documentation 说明一旦在应用程序会话中启用报告,就无法将其禁用。
默认情况下,Crashlytics 报告在名为 CrashlyticsInitProvider 的 ContentProvider
中启用,它在您的 Application
实例创建之前执行。 CrashlyticsInitProvider 根据元数据值 firebase_crashlytics_collection_enabled
启用或禁用报告,默认情况下为 true。
如果您想禁用报告,清单元数据必须存在并设置为 false:
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="false" />
在应用程序初始化期间查看 logcat 消息:
CrashlyticsInitProvider: CrashlyticsInitProvider initialization successful
如果消息存在,则 firebase_crashlytics_collection_enabled
为真。如果消息不存在,则您已成功设置元数据以禁用崩溃报告。
如果元数据丢失或设置为 true,则您无法通过调用 Fabric.with(...)
.
在对另一个答案的评论中,您表示您尝试使用元数据禁用报告但没有成功。检查拼写错误并确保声明正确放置在 <application>
元素中。在我的测试中,我能够使用元数据禁用报告,然后在 运行 时间启用。
如果您想完全禁用 Firebase 崩溃报告并且也不必添加
com.crashlytics.sdk.android:crashlytics:2.9.1
依赖关系,那么:
将此添加到您应用的 build.gradle:
android {
// ...
defaultConfig {
manifestPlaceholders = [enableCrashReporting:"false"]
....
}
}
然后将其添加到您的 AndroidManifest.xml:
<application ...>
// ...
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="${enableCrashReporting}" />
<meta-data
android:name="firebase_analytics_collection_deactivated"
android:value="true"/>
</application>
在您的模块构建中 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"]
}
清单中
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="${crashlyticsCollectionEnabled}" />
用新的 Firebase Crashlytics beta 取代 Fabric:
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(false)
使用新的 Firebase Crashlytics SDK,要禁用崩溃报告,您必须使用此 method : setCrashlyticsCollectionEnabled
if (BuildConfig.DEBUG) {
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(false)
}
- 禁用自动数据收集(清单)
<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
- 如果不在您的应用程序上调试构建,请启用它。
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(!BuildConfig.DEBUG)