Setting Up Firebase Crashlytics aka Fixing the Crashlytics Developer Tools Error

Published 1/2/2018, Last Updated 1/2/2018 by Joe Cieslik

Back

Introduction

Firebase Crashlytics is easy to setup and use with a few pitfalls. After setting up Crashlytics according to the official Firebase Crashlytics doc I kept receiving a Crashlytics Developer Tools Error with no context on gradle sync. All of the StackOverflow answers pointed towards either a missing api key which Fabric requires but not Firebase or commenting out apply plugin: 'io.fabric' in the app level gradle. Since I wasn't using Fabric I tried the commenting method which allowed gradle to sync but on build the app would crash as soon as it was opened with an error that it needed a Fabric api key which was confusing. I eventually fixed my issue with the methods described below. I also referred to this helpful blog post about migrating from Fabric to Firebase. I hope this post helps someone out there debug their build.

Firebase Setup

Make sure you have enabled Crashlytics in your Firebase Console and have an updated google-services.json in each of your app directories.

Project Level Gradle

Next add these lines to your project level gradle file:
buildscript { repositories { // ... maven { url 'https://maven.fabric.io/public' } } dependencies { // ... classpath 'com.google.gms:google-services:3.1.2' classpath 'io.fabric.tools:gradle:1.24.4' } } allprojects { // ... repositories { // ... maven { url 'https://maven.google.com/' } } }
You must have at least version 3.1.2 of google-services. I forgot to do this the first time I added the rest of the lines which was my first mistake.

App Level Gradle

Finally add these lines to each of your app or module level gradle files:
apply plugin: 'io.fabric' dependencies { // ... compile('com.crashlytics.sdk.android:crashlytics:2.7.1@aar') { transitive = true } compile 'com.google.firebase:firebase-core:11.8.0' } apply plugin: 'com.google.gms.google-services'
Some modules in my project did not originally contain the google-services plugin at the app level which was my second error.