1

I am working on an app, and when building it using gradle in command line ("clean build" or even "clean installRelease"), I am facing the issue where Crashlytics fails to start :

java.lang.RuntimeException: Unable to create application XXXXXXXX: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: com.crashlytics.android.core.CrashlyticsMissingDependencyException: 
This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up,
install an Android build tool and ask a team member to invite you to this app's organization.

After trying many things presented on SO, I found out that if I ran :

./gradlew clean installRelease
./gradlew installRelease

my application starts without any issue.

It's a bit of a pain, as I have to build the app twice before publishing it (and if I ever forget to do it, I am publishing an unusable app :/

My gradle file is set up correctly (at least, the plugin does not complain about it), and gradle is up to date (gradle 2.9, android plugin 1.5.0, crashlytics 2.5.4, ...)

Here are a few lines from my build.gradle:

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
        mavenCentral()
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.20.1'
        classpath 'me.tatarka:gradle-retrolambda:3.2.3'
        classpath 'com.jakewharton.hugo:hugo-plugin:1.2.1'
    }
}

repositories {
    maven { url 'https://maven.fabric.io/public' }
    mavenCentral()
}

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'com.jakewharton.hugo'
apply plugin: 'io.fabric'


android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    signingConfigs {
        std {
        }
    }
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    defaultConfig {
        applicationId "XXXXXXXXXXX"
        minSdkVersion 18
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.std
        }
        debug {
            signingConfig signingConfigs.std
        }
    }

    productFlavors {
        stubbed {
            buildConfigField "boolean", "STUBBED", "true"
        }
        real {
            buildConfigField "boolean", "STUBBED", "false"
        }
    }
    packagingOptions {
        exclude 'META-INF/services/javax.annotation.processing.Processor'
    }

    dataBinding {
        enabled = true
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile('com.crashlytics.sdk.android:crashlytics:2.5.4@aar') {
        transitive = true;
    }
    compile 'com.google.android.gms:play-services-gcm:8.3.0'

    compile 'com.jakewharton:butterknife:7.0.1'
}

If anyone has ever faced and fixed this kind of problem, I'd love to hear about it :) Thanks !

Melissa Avery-Weir
  • 1,357
  • 2
  • 16
  • 47
Simon Guerout
  • 652
  • 6
  • 17
  • 1
    I experienced the same problem. People are discussing it in the comments here: http://stackoverflow.com/a/28440439/5482166. To resolve it whilst Fabric gets a fix out I reverted the android gradle plugin to 1.3.1. – davehenry Dec 03 '15 at 06:34
  • 1
    The issue also goes away if you disable dataBinding – davehenry Dec 03 '15 at 06:44
  • Thanks @davehenry ! I'll wait for this to be fixed and set a work around in my automated build system until things can go back to normal... – Simon Guerout Dec 03 '15 at 21:25

0 Answers0