问题
When you want to use Crashlytics NDK, you need call Fabric.with(this, new Crashlytics(),new CrashlyticsNdk());
But Firebase Crashlytics calls
Fabric.with(context, new Kit[]{new Crashlytics()});
on startup.
As the result you cannot use Crashlytics NDK.
How can I avoid this problem?
public class CrashlyticsInitProvider extends ContentProvider {
private static final String TAG = "CrashlyticsInitProvider";
public CrashlyticsInitProvider() {
}
public boolean onCreate() {
Context context = this.getContext();
FirebaseInfo firebaseInfo = new FirebaseInfo();
CrashlyticsInitProvider.EnabledCheckStrategy enabledCheckStrategy = new ManifestEnabledCheckStrategy();
if (this.shouldInitializeFabric(context, firebaseInfo, enabledCheckStrategy)) {
try {
Fabric.with(context, new Kit[]{new Crashlytics()}); // !here
Fabric.getLogger().i("CrashlyticsInitProvider", "CrashlyticsInitProvider initialization successful");
} catch (IllegalStateException var5) {
Fabric.getLogger().i("CrashlyticsInitProvider", "CrashlyticsInitProvider initialization unsuccessful");
return false;
}
}
return true;
}
回答1:
Add this to your AndroidManifest.xml
:
<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
Then initialise Crashlytics manually in your Application
subclass:
Fabric fabric = new Fabric.Builder(this)
.kits(new Crashlytics(), new CrashlyticsNdk())
.build();
Fabric.with(fabric);
See https://firebase.google.com/docs/crashlytics/force-a-crash#enable_debug_mode
来源:https://stackoverflow.com/questions/50986823/firebase-crashlytics-does-not-support-ndk