Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Circular dependency between the following tasks while using firebase Crashlytics

Today I just migrated from fabric crashlytics to Firebase crashlytics.

Everything is working fine with minifyEnabled false, but when I changed the minifyEnabled true I got this exception:

Circular dependency between the following tasks:
:app:checkManifestChangesDebug
\--- :app:instantRunMainApkResourcesDebug
 \--- :app:transformClassesAndDexWithShrinkResForDebug
      \--- :app:transformDexArchiveWithDexMergerForDebug
           +--- :app:preColdswapDebug
           |    \--- :app:incrementalDebugTasks
           |         +--- :app:transformClassesAndClassesEnhancedWithInstantReloadDexForDebug
           |         |    \--- :app:transformClassesWithInstantRunForDebug
           |         |         \--- :app:checkManifestChangesDebug (*)
           |         \--- :app:transformClassesWithInstantRunForDebug (*)
           \--- :app:transformClassesWithDexBuilderForDebug
                +--- :app:preColdswapDebug (*)
                \--- :app:transformClassesWithInstantRunForDebug (*)

(*) - details omitted (listed previously)

Here is the project level build gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
ext.butterknife_version = '8.8.1'
ext.supportLibVersion = '28.0.0'
ext.kotlin_version = '1.2.71'
ext.retrofit_version = '2.3.0'
ext.anko_version = '0.10.4'
ext.google_play_service_version = '16.0.0'
ext.firebase_messaging_version = '17.3.4'
repositories {
    maven { url 'https://maven.google.com' }
    jcenter()
    google()

    //for firebase crashlytics
    maven {
        url 'https://maven.fabric.io/public'
    }
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.2.1'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath "com.jakewharton:butterknife-gradle-plugin:$butterknife_version"
    classpath 'com.google.gms:google-services:4.2.0'
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files

    classpath 'io.fabric.tools:gradle:1.27.0'
}
}

allprojects {
repositories {
    maven { url 'https://maven.google.com' }
    jcenter()
    maven {
        url "https://github.com/omadahealth/omada-nexus/raw/master/release"
    }
    maven {
        url 'https://maven.fabric.io/public'
    }
    maven { url "https://jitpack.io" }
    mavenCentral()
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

Here is the module build gradle

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'io.fabric'

android {
compileSdkVersion 28
defaultConfig {
    applicationId "com.mta.mmp"
    minSdkVersion 21
    targetSdkVersion 28
    versionCode 18
    versionName "1.2.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    multiDexEnabled true
    dexOptions {
        javaMaxHeapSize "4g"
    }
}
buildTypes {
    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        buildConfigField 'String', 'FirebaseTopicForPushNotification', "\"PROD_ANDROID_BROADCAST_MMP\""
    }
    dev {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        buildConfigField 'String', 'FirebaseTopicForPushNotification', "\"UAT_ANDROID_BROADCAST_MMP\""
    }
    debug {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        buildConfigField 'String', 'FirebaseTopicForPushNotification', "\"UAT_ANDROID_BROADCAST_MMP\""
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
}


repositories {
maven { url "https://jitpack.io" }
}



dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
configurations {
    all*.exclude group: 'com.android.support', module: 'support-v13'
}
testImplementation 'junit:junit:4.12'

//kotlin
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

implementation "com.android.support:appcompat-v7:$supportLibVersion"
implementation "com.android.support:design:$supportLibVersion"
implementation "com.android.support:recyclerview-v7:$supportLibVersion"
implementation "com.android.support:cardview-v7:$supportLibVersion"
implementation "com.android.support:support-v4:$supportLibVersion"

//retrofit 2
implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
implementation "com.squareup.retrofit2:retrofit:$retrofit_version"

//retrofit http interceptor
implementation 'com.squareup.okhttp3:logging-interceptor:3.11.0'

//gson converter factory
implementation "com.squareup.retrofit2:adapter-rxjava2:$retrofit_version"
implementation "com.squareup.retrofit2:converter-gson:$retrofit_version"
implementation 'com.google.code.gson:gson:2.8.2'

//RxAndroid
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
implementation 'io.reactivex.rxjava2:rxjava:2.2.0'

//picaso library
implementation 'com.squareup.picasso:picasso:2.5.2'

//form validation library
implementation 'com.mobsandgeeks:android-saripaar:2.0.3'

//font library
implementation 'uk.co.chrisjenx:calligraphy:2.3.0'

//material dialog
implementation 'com.afollestad.material-dialogs:core:0.9.6.0'

//joda time
implementation 'net.danlew:android.joda:2.9.4.3'

//circleimageview
implementation 'de.hdodenhof:circleimageview:2.2.0'

//recyclerview animation
implementation 'jp.wasabeef:recyclerview-animators:2.2.5'

//Butterknife
implementation "com.jakewharton:butterknife:$butterknife_version"
kapt "com.jakewharton:butterknife-compiler:$butterknife_version"

//rx runtime permissions
implementation 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.5@aar'

//rx binding
implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'

//pinlib
//    compile project(':pinLib')

//circle indicator
implementation 'me.relex:circleindicator:1.2.2@aar'

//AndroidSlidingUpPanel
implementation 'com.sothree.slidinguppanel:library:3.3.1'

//toasty
implementation 'com.github.GrenderG:Toasty:1.2.5'

//for google map
implementation "com.google.android.gms:play-services-maps:$google_play_service_version"

//for location
implementation "com.google.android.gms:play-services-location:$google_play_service_version"

//Transitions Everywhere
implementation "com.andkulikov:transitionseverywhere:1.7.4"

//Android-Iconics
implementation "com.mikepenz:iconics-core:2.8.8@aar"
implementation "com.android.support:appcompat-v7:${supportLibVersion}"
implementation 'com.mikepenz:google-material-typeface:3.0.1.1.original@aar'

//Multidex
implementation 'com.android.support:multidex:1.0.3'

//for recyclerview swipe
implementation 'com.chauthai.swipereveallayout:swipe-reveal-layout:1.4.1'

//RippleView
implementation 'com.github.traex.rippleeffect:ripple:1.3.1-OG'

//TypefaceView
implementation 'com.github.omadahealth.typefaceview:typefaceview:1.5.0@aar'

//firebase Cloud Messaging
implementation "com.google.firebase:firebase-messaging:$firebase_messaging_version"
implementation 'com.google.firebase:firebase-core:16.0.6'

//qr scanner
implementation 'me.dm7.barcodescanner:zxing:1.9.4'

//MaterialDateTimePicker
implementation 'com.wdullaer:materialdatetimepicker:3.6.0'

implementation 'com.github.drawers:SpinnerDatePicker:1.0.6'

//anko
implementation "org.jetbrains.anko:anko:$anko_version"

// Anko Commons
implementation "org.jetbrains.anko:anko-commons:$anko_version"

//google maps utils
implementation 'com.google.maps.android:android-maps-utils:0.5+'

//crashlytics
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.7'

//kotpref
implementation "com.chibatching.kotpref:kotpref:2.4.0"
implementation "com.chibatching.kotpref:initializer:2.4.0" // optional
implementation "com.chibatching.kotpref:enum-support:2.4.0" // optional
implementation "com.chibatching.kotpref:gson-support:2.4.0" // optional

//rootbear
implementation 'com.scottyab:rootbeer-lib:0.0.6'

//autofittextview
implementation 'me.grantland:autofittextview:0.2.+'

//libphonenumber
implementation 'io.michaelrocks:libphonenumber-android:8.9.0'

//ksfmememory lib
//implementation(name: 'ksfmemoryidlib-release', ext: 'aar')
implementation 'org.apache.commons:commons-compress:1.15'

//rounded imageview
implementation 'com.makeramen:roundedimageview:2.3.0'

//Scaling layout
implementation 'com.github.iammert:ScalingLayout:1.2.1'

//Crisp MMP
implementation 'im.crisp:crisp-sdk:0.1.8'

//slider from daimajia
implementation 'com.daimajia.slider:library:1.1.5@aar'
implementation 'com.nineoldandroids:library:2.4.0'
implementation 'com.github.bumptech.glide:glide:4.8.0'
kapt 'com.github.bumptech.glide:compiler:4.8.0'

implementation 'com.theartofdev.edmodo:android-image-cropper:2.7.+'

//Camera view
implementation 'com.otaliastudios:cameraview:1.5.1'

//Picasso2-okhttp3-downloader
implementation 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0'

//Restring 1.0
implementation 'com.ice.restring:restring:1.0.0'
}

repositories {
flatDir {
    dirs 'libs'
}
}

apply plugin: 'com.google.gms.google-services'

And proguard for the crashlytics is

#PROGUARD RULE FOR FIREBASE CRASHLYTICS
#----------------------------------------------------------------------
# https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports
-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
-keep public class * extends java.lang.Exception

# To let Crashlytics automatically upload the ProGuard or DexGuard mapping 
file, remove this line from the config file
# -printmapping mapping.txt

-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**
like image 738
Ram Mandal Avatar asked Mar 06 '26 15:03

Ram Mandal


1 Answers

Following on from our comments discussion, make sure to disable Instant Run for an immediate fix to the solution!

like image 175
Jake Lee Avatar answered Mar 08 '26 05:03

Jake Lee



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!