title: com.android.tools.r8.errors.CompilationError: Program type already present: androidx.annotation.AnimRes
body: <p>I'm trying to rebuild my project which I've written in kotlin but it has constantly failed with the error</p>
  
  <pre><code>Program type already present: androidx.annotation.AnimRes
  </code></pre>
  
  <p>I've tried </p>
  
  <ul>
  <li><p>Invalidating cache</p></li>
  <li><p>cleaning and rebuilding</p></li>
  <li><p>using <code>./gradlew build --stacktrace --info</code> command</p></li>
  </ul>
  
  <p>but without success.</p>
  
  <p>Exception is</p>
  
  <pre><code>org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithMultidexlistForDebug'
  </code></pre>
  
  <p>Stack trace is</p>
  
  <pre><code>Caused by: java.lang.RuntimeException: com.android.build.api.transform.TransformException: Error while generating the main dex list.
          at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55)
          at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104)
          at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
          at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
          at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
          at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
          at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
          at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
          at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
          at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
          at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
          at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
          at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
          at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
          at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
          ... 111 more
  Caused by: com.android.build.api.transform.TransformException: Error while generating the main dex list.
          at com.android.build.gradle.internal.transforms.D8MainDexListTransform.transform(D8MainDexListTransform.kt:143)
          at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
          at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
          at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
          ... 124 more
  Caused by: com.android.builder.multidex.D8MainDexList$MainDexListException: com.android.tools.r8.errors.CompilationError: Program type already present: androidx.annotation.AnimRes
          at com.android.builder.multidex.D8MainDexList.generate(D8MainDexList.java:87)
          at com.android.build.gradle.internal.transforms.D8MainDexListTransform.transform(D8MainDexListTransform.kt:128)
          ... 127 more
  Caused by: com.android.tools.r8.errors.CompilationError: Program type already present: androidx.annotation.AnimRes
          at com.android.tools.r8.utils.ProgramClassCollection.resolveClassConflictImpl(ProgramClassCollection.java:64)
          at com.android.tools.r8.utils.ProgramClassCollection.lambda$create$0(ProgramClassCollection.java:25)
          at com.android.tools.r8.utils.ProgramClassCollection.create(ProgramClassCollection.java:24)
          at com.android.tools.r8.graph.LazyLoadedDexApplication$Builder.build(LazyLoadedDexApplication.java:124)
          at com.android.tools.r8.dex.ApplicationReader.read(ApplicationReader.java:123)
          at com.android.tools.r8.dex.ApplicationReader.read(ApplicationReader.java:86)
          at com.android.tools.r8.GenerateMainDexList.run(GenerateMainDexList.java:41)
          at com.android.tools.r8.GenerateMainDexList.run(GenerateMainDexList.java:111)
          at com.android.builder.multidex.D8MainDexList.generate(D8MainDexList.java:83)
          ... 128 more
  </code></pre>
  
  <p>My app's build.gradle is</p>
  
  <pre><code>apply plugin: 'com.android.application'
  apply plugin: 'kotlin-android'
  apply plugin: 'kotlin-android-extensions'
  apply plugin: 'kotlin-kapt'
  apply plugin: 'realm-android'
  
  android {
      compileSdkVersion 28
      defaultConfig {
          applicationId "com.my.app.id"
          minSdkVersion 15
          targetSdkVersion 28
          versionCode 1
          versionName "1.0"
          multiDexEnabled true
          vectorDrawables.useSupportLibrary = true
          testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
          renderscriptTargetApi 19
          renderscriptSupportModeEnabled true
      }
      buildTypes {
          release {
              minifyEnabled false
              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
          }
      }
      dataBinding {
          enabled true
      }
      buildToolsVersion '28.0.2'
      compileOptions {
          sourceCompatibility JavaVersion.VERSION_1_8
          targetCompatibility JavaVersion.VERSION_1_8
      }
  }
  
  dependencies {
      implementation fileTree(include: ['*.jar'], dir: 'libs')
  
      //kotlin
      implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
  
      //support
      implementation "androidx.legacy:legacy-support-v4:$androidX"
      implementation "androidx.appcompat:appcompat:$androidX"
      implementation "androidx.constraintlayout:constraintlayout:1.1.2"
      implementation "androidx.multidex:multidex:2.0.0"
      implementation "androidx.recyclerview:recyclerview:$androidX"
      implementation "androidx.vectordrawable:vectordrawable:$androidX"
      implementation "androidx.cardview:cardview:$androidX"
      implementation "androidx.palette:palette:$androidX"
      implementation "com.google.android.material:material:$androidX"
  
      //architecture
      implementation "androidx.lifecycle:lifecycle-runtime:$architectureVersion"
      implementation "androidx.lifecycle:lifecycle-extensions:$architectureVersionExt"
      implementation "androidx.legacy:legacy-support-v4:$androidX"
      kapt "androidx.lifecycle:lifecycle-compiler:$architectureVersion"
  
      //data binding
      //kapt "androidx.databinding:databinding-compiler:3.3.0-alpha04"
  
      //glide
      //kapt "com.github.bumptech.glide:compiler:$glideVersion"
      //implementation "com.github.bumptech.glide:glide:$glideVersion"
      implementation 'com.github.bumptech.glide:glide:4.8.0-SNAPSHOT'
      implementation 'com.github.bumptech.glide:okhttp-integration:4.8.0-SNAPSHOT'
  
      //dagger
      implementation "com.google.dagger:dagger:$daggerVersion"
      kapt "com.google.dagger:dagger-compiler:$daggerVersion"
      implementation "com.google.dagger:dagger-android:$daggerVersion"
      implementation "com.google.dagger:dagger-android-support:$daggerVersion"
  
      // if you use the support libraries
      kapt "com.google.dagger:dagger-android-processor:$daggerVersion"
  
      //reactiveX
      implementation "io.reactivex.rxjava2:rxandroid:$rxandroidVersion"
      implementation "io.reactivex.rxjava2:rxjava:$rxjavaVersion"
      implementation "io.reactivex.rxjava2:rxkotlin:$rxKotlinVersion"
  
      //
      implementation "com.jakewharton.rxbinding2:rxbinding:$rxBinding"
      implementation "com.tbruyelle.rxpermissions2:rxpermissions:$rxPermissions"
  
      //ucrop
      implementation "com.github.yalantis:ucrop:$uCrop"
  
      //other libraries
      implementation "com.google.code.gson:gson:$gson"
      implementation "com.googlecode.libphonenumber:libphonenumber:$phoneLibVersion"
  
      //map and places
      implementation "com.google.android.gms:play-services-places:$mapVersion"
      implementation "com.google.android.gms:play-services-maps:$mapVersion"
  
      //
      implementation 'com.budiyev.android:circular-progress-bar:1.2.0'
  
      //retrofit
      implementation "com.squareup.retrofit2:retrofit:$retrofit"
      implementation "com.squareup.retrofit2:converter-gson:$retrofit"
      implementation "com.squareup.retrofit2:adapter-rxjava2:$retrofit"
      debugImplementation "com.squareup.okhttp3:logging-interceptor:$okhttpVersion"
      testImplementation 'junit:junit:4.12'
      androidTestImplementation "androidx.test:runner:$androidX"
      androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
  }
  </code></pre>
  
  <p>Project's build.gradle</p>
  
  <pre><code>buildscript {
      ext.kotlin_version = '1.2.61'
      ext.realmVersion ='5.4.2'
      repositories {
          jcenter()
          maven {
              name 'glide-snapshot'
              url 'http://oss.sonatype.org/content/repositories/snapshots'
          }
          google()
      }
      dependencies {
          classpath 'com.android.tools.build:gradle:3.3.0-alpha07'
          classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
          classpath "io.realm:realm-gradle-plugin:$realmVersion"
          //classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
          // NOTE: Do not place your application dependencies here; they belong
          // in the individual module build.gradle files
      }
  }
  
  allprojects {
      repositories {
          jcenter()
          maven {
              url "https://maven.google.com"
          }
          maven { url "https://jitpack.io" }
          maven {
              name 'glide-snapshot'
              url 'http://oss.sonatype.org/content/repositories/snapshots'
          }
          google()
      }
  
      gradle.projectsEvaluated {
          tasks.withType(JavaCompile) {
              options.compilerArgs &lt;&lt; "-Xmaxerrs" &lt;&lt; "1000"
          }
      }
  }
  
  /**
   * Configure common tasks on all the submodules
   */
  allprojects { project -&gt;
  
      // Get versions, this is where we store things
      // like the list of submodules or the version
      project.apply from: "$rootDir/versions.gradle"
  }
  task clean(type: Delete) {
      delete rootProject.buildDir
  }
  </code></pre>