title: Execution failed for task ':app:checkDebugDuplicateClasses'. Ionic4 Android
body: <p>I'm currently working on an ionic4 application, but recently it stopped working while building the application on an android reall device after adding <a href="https://ionicframework.com/docs/native/fcm" rel="noreferrer">https://ionicframework.com/docs/native/fcm</a> plugin to the application.</p>
  
  <p>At first it was complaining about fabric key, however I never aimed to use fabric crashlytic on my app.</p>
  
  <p>The error logs:</p>
  
  <pre><code>* What went wrong:
  Execution failed for task ':app:checkDebugDuplicateClasses'.
  &gt; 1 exception was raised by workers:
    java.lang.RuntimeException: Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.IResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.IResultReceiver$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.IResultReceiver$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.ResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.ResultReceiver$1 found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.ResultReceiver$MyResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.ResultReceiver$MyRunnable found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  
    Go to the documentation to learn how to &lt;a href="d.android.com/r/tools/classpath-sync-errors"&gt;Fix dependency resolution errors&lt;/a&gt;.
  
  
  * Try:
  Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
  
  * Get more help at https://help.gradle.org
  
  BUILD FAILED in 21s
  
  Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
  Use '--warning-mode all' to show the individual deprecation warnings.
  See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings
  35 actionable tasks: 5 executed, 30 up-to-date
  cmd: Command failed with exit code 1 Error output:
  FAILURE: Build failed with an exception.
  
  * What went wrong:
  Execution failed for task ':app:checkDebugDuplicateClasses'.
  &gt; 1 exception was raised by workers:
    java.lang.RuntimeException: Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.IResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.IResultReceiver$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.IResultReceiver$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.ResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.ResultReceiver$1 found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.ResultReceiver$MyResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.ResultReceiver$MyRunnable found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
  
    Go to the documentation to learn how to &lt;a href="d.android.com/r/tools/classpath-sync-errors"&gt;Fix dependency resolution errors&lt;/a&gt;.
  
  
  * Try:
  Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
  
  * Get more help at https://help.gradle.org
  
  BUILD FAILED in 21s
  [ERROR] An error occurred while running subprocess cordova.
  
          cordova run android exited with exit code 1.
  
          Re-running this command with the --verbose flag may provide more information.
  </code></pre>
  
  <p>android/app/build.gradle</p>
  
  <pre><code>buildscript {
      repositories {
          google()
          jcenter()
          maven { url 'https://maven.fabric.io/public' } // Fabrics Maven repository from cordova-plugin-firebase
      }
      dependencies {
  
          // NOTE: Do not place your application dependencies here; they belong
          // in the individual module build.gradle files
          classpath 'com.android.tools.build:gradle:3.4.0+'
          classpath 'com.google.gms:google-services:4.2.0' // google-services dependency from cordova-plugin-firebase
          classpath 'io.fabric.tools:gradle:1.+' // fabric dependency from cordova-plugin-firebase
      }
  }
  
  allprojects {
      repositories {
  
          jcenter()
          google() // Google's Maven repository from cordova-plugin-firebase
      }
      //This replaces project.properties w.r.t. build settings
      project.ext {
        defaultBuildToolsVersion="28" //String
        defaultMinSdkVersion=19 //Integer - Minimum requirement is Android 4.4
        defaultTargetSdkVersion=28 //Integer - We ALWAYS target the latest by default
        defaultCompileSdkVersion=28 //Integer - We ALWAYS compile with the latest by default
      }
  }
  
  task clean(type: Delete) {
      delete rootProject.buildDir
  }
  </code></pre>
  
  <p>cordova-plugin-firebase/raihan-build.gradle</p>
  
  <pre><code>buildscript {
      repositories {
          google()
          jcenter()
      }
      dependencies {
         classpath 'com.android.tools.build:gradle:3.4.0+'
          classpath 'com.google.gms:google-services:4.2.0'
      }
  }
  
  
  dependencies {
      compile 'me.leolin:ShortcutBadger:1.1.4@aar'
      compile 'com.google.firebase:firebase-auth:+'
      compile('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') {
         transitive = true
      }
  }
  cdvPluginPostBuildExtras.add({
      // apply plugin: 'com.google.gms.google-services'
      apply plugin: 'io.fabric'
  })
  </code></pre>
  
  <p>cordova-plugin-fcm-with-dependecy-updated/raihan-FCMPlugin.gradle</p>
  
  <pre><code>buildscript {
      repositories {
         google()
          jcenter()
          mavenLocal()
      }
      dependencies {
          classpath 'com.android.tools.build:gradle:3.4.0+'
          classpath 'com.google.gms:google-services:4.2.0'
      }
  }
  repositories {
      google()
      jcenter()
  }
  dependencies {
      compile 'com.google.firebase:firebase-core:16.0.8'
  }
  // apply plugin: 'com.google.gms.google-services'
  // class must be used instead of id(string) to be able to apply plugin from non-root gradle file
  // apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
  </code></pre>
  
  <p>android/project.properties</p>
  
  <pre><code> target=android-27
      android.library.reference.1=CordovaLib
      android.library.reference.2=app
      cordova.gradle.include.1=cordova-android-support-gradle-release/raihan-cordova-android-support-gradle-release.gradle
      cordova.system.library.1=com.squareup.okhttp3:okhttp-urlconnection:3.10.0
      cordova.system.library.2=com.android.support:support-v4:24.1.1+
      cordova.system.library.3=com.soundcloud.android:android-crop:1.0.0@aar
      cordova.system.library.4=com.google.firebase:firebase-core:16.0.8
      cordova.system.library.4=com.google.firebase:firebase-iid:17.1.1
      cordova.system.library.5=com.google.firebase:firebase-messaging:17.5.0
      cordova.gradle.include.2=cordova-plugin-fcm-with-dependecy-updated/raihan-FCMPlugin.gradle
      cordova.gradle.include.3=cordova-support-google-services/raihan-build.gradle
      cordova.system.library.6=com.google.firebase:firebase-auth:16.2.0
      cordova.system.library.6=com.google.firebase:firebase-perf:16.2.4
      cordova.system.library.7=com.android.support:support-annotations:27.+
      cordova.system.library.8=com.android.support:appcompat-v7:23+
      cordova.system.library.8=com.google.firebase:firebase-iid:17.1.1
      cordova.system.library.8=com.google.android.gms:play-services-tagmanager:16.0.8
      cordova.system.library.8=com.google.firebase:firebase-config:16.4.0
      cordova.gradle.include.4=cordova-plugin-telerik-imagepicker/raihan-ignorelinterrors.gradle
      cordova.gradle.include.5=cordova-plugin-telerik-imagepicker/raihan-androidtarget.gradle
      cordova.gradle.include.6=cordova-android-support-gradle-release/raihan-cordova-android-support-gradle-release.gradle
      cordova.gradle.include.7=cordova-plugin-firebase/raihan-build.gradle
  </code></pre>
  
  <p>I have provided the above files, let me know if I need to upload anything else.</p>