title: 64k limit exceeded on older APIs than lollipop, but not newer
body: <p>So I am wondering why I encounter the 64k dex method limit when trying to run my app on android versions older than lollipop, when it runs just fine on the more recent versions. </p>
  
  <p>Could it be, because the support libraries are actually being referenced when running on the older versions?</p>
  
  <p>This is my gradle: </p>
  
  <pre><code>    apply plugin: 'com.android.application'
  
      android {
          compileSdkVersion 23
          buildToolsVersion '23.0.2'
      lintOptions {
          checkReleaseBuilds true
          // Or, if you prefer, you can continue to check for errors in release builds,
          // but continue the build even when errors are found:
          abortOnError false
      }
  
      defaultConfig {
          applicationId "com.domain.myapp"
          minSdkVersion 16
          targetSdkVersion 23
          versionCode 27
          versionName "1.2"
  
          // Vector compat
          vectorDrawables.useSupportLibrary = true 
      }
  
      buildTypes {
          release {
              minifyEnabled true
              shrinkResources true
              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
          }
      }
  
      compileOptions {
          sourceCompatibility JavaVersion.VERSION_1_7
          targetCompatibility JavaVersion.VERSION_1_7
      }
  }
  
  dependencies {
  
      compile files('libs/commons-io-2.4.jar')
      compile files('libs/activation.jar')
      compile files('libs/additionnal.jar')
      compile files('libs/mail.jar')
      compile project(':libraries:preferencefragment')
  
      // Gmail API
      compile('com.google.api-client:google-api-client-android:1.20.0') {
          exclude group: 'org.apache.httpcomponents'
      }
      compile('com.google.apis:google-api-services-gmail:v1-rev29-1.20.0') {
          exclude group: 'org.apache.httpcomponents'
      }
  
      // Play Services
      compile 'com.google.android.gms:play-services-location:8.4.0'
      compile 'com.google.android.gms:play-services-maps:8.4.0'
      compile 'com.google.android.gms:play-services-ads:8.4.0'
      compile 'com.google.android.gms:play-services-analytics:8.4.0'
      compile 'com.google.android.gms:play-services-identity:8.4.0'
  
      // Support libraries
      compile 'com.android.support:support-v4:23.3.0'
      compile 'com.android.support:appcompat-v7:23.3.0'
      compile 'com.android.support:cardview-v7:23.3.0'
      compile 'com.android.support:design:23.3.0'
  
      compile 'com.github.bumptech.glide:glide:3.6.1'
      compile 'com.anjlab.android.iab.v3:library:1.0.20'
      compile 'com.sothree.slidinguppanel:library:2.0.3'
      compile 'com.commit451:PhotoView:1.2.5'
  
      compile('com.github.afollestad.material-dialogs:core:0.8.5.7@aar') {
          transitive = true
      }
  }
  </code></pre>
  
  <p><strong>EDIT:</strong></p>
  
  <p>To clarify: This happens when I try to run the app on an emulator running e.g. KitKat API 19</p>
  
  <p>Crash logs from the gradle console:</p>
  
  <pre><code>...
  :App:generateDebugInstantRunAppInfo
  :App:transformClassesWithDexForDebug
  AGPBI: {"kind":"error","text":"The number of method references in a .dex file cannot exceed 64K.\nLearn how to resolve this issue at https://developer.android.com/tools/building/multidex.html","sources":[{}],"original":"UNEXPECTED TOP-LEVEL EXCEPTION:\ncom.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536\n\tat com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:484)\n\tat com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:261)\n\tat com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:473)\n\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:161)\n\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:188)\n\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504)\n\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)\n\tat com.android.dx.command.dexer.Main.run(Main.java:277)\n\tat com.android.dx.command.dexer.Main.main(Main.java:245)\n\tat com.android.dx.command.Main.main(Main.java:106)\n","tool":"Dex"}
  
   FAILED
  
  FAILURE: Build failed with an exception.
  
  * What went wrong:
  Execution failed for task ':App:transformClassesWithDexForDebug'.
  &gt; com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2
  
  * Try:
  Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
  
  BUILD FAILED
  </code></pre>
  
  <p>Crash message from the Message window:</p>
  
  <pre><code>:App:transformClassesWithDexForDebug
  Error:The number of method references in a .dex file cannot exceed 64K.
  Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html
  Error:Execution failed for task ':App:transformClassesWithDexForDebug'.
  &gt; com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2
  </code></pre>