title: Can't build APK with Android Studio when using ProGuard minification
body: <p>I have a problem generating the APKs of my applications.</p>
  
  <p>If i debug/run the app, it works normally. But when I try to generate the corresponding APK, Android Studio gives me a lot of warnings and one error:</p>
  
  <pre><code>Note: there were 159 duplicate class definitions.
    (http://proguard.sourceforge.net/manual/troubleshooting.html#duplicateclass)
  Warning:com.thoughtworks.xstream.converters.reflection.CGLIBEnhancedConverter$ReverseEngineeredCallbackFilter: can't find superclass or interface net.sf.cglib.proxy.CallbackFilter
  Warning:org.apache.harmony.awt.datatransfer.DataProxy: can't find superclass or interface java.awt.datatransfer.Transferable
  Warning:org.apache.harmony.awt.datatransfer.NativeClipboard: can't find superclass or interface java.awt.datatransfer.Clipboard
  Warning:library class android.content.res.XmlResourceParser extends or implements program class org.xmlpull.v1.XmlPullParser
  Warning:library class org.apache.http.auth.AuthenticationException extends or implements program class org.apache.http.ProtocolException
  [...]
  Warning:library class org.apache.http.impl.conn.LoggingSessionOutputBuffer extends or implements program class org.apache.http.io.SessionOutputBuffer
  Warning:com.itextpdf.testutils.ITextTest: can't find referenced class javax.management.OperationsException
  Warning:com.itextpdf.text.pdf.BarcodeCodabar: can't find referenced class java.awt.Color
  [...]
  Warning:com.itextpdf.text.pdf.security.MakeXmlSignature: can't find referenced class javax.xml.crypto.dsig.spec.C14NMethodParameterSpec
  [...]
  Warning:com.sun.mail.handlers.image_gif: can't find referenced class java.awt.datatransfer.DataFlavor
  [...]
  Warning:com.sun.mail.imap.protocol.IMAPSaslAuthenticator: can't find referenced class javax.security.sasl.Sasl
  [...]
  Warning:com.thoughtworks.xstream.converters.extended.ColorConverter: can't find referenced class java.awt.Color
  [...]
  Warning:org.apache.harmony.awt.ContextStorage: can't find referenced class java.awt.Toolkit
  [...]
  Warning:org.spongycastle.jce.provider.X509LDAPCertStoreSpi: can't find referenced class javax.naming.directory.InitialDirContext
  [...]
  Warning:library class android.content.Intent depends on program class org.xmlpull.v1.XmlPullParser
  [...]
  Warning:library class org.apache.http.client.HttpClient depends on program class org.apache.http.HttpResponse
  [...]
  Warning:library class org.xmlpull.v1.XmlPullParserFactory depends on program class org.xmlpull.v1.XmlPullParser
  Warning:there were 1077 unresolved references to classes or interfaces.
           You may need to add missing library jars or update their versions.
           If your code works fine without the missing classes, you can suppress
           the warnings with '-dontwarn' options.
           (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)
  Warning:there were 141 instances of library classes depending on program classes.
           You must avoid such dependencies, since the program classes will
           be processed, while the library classes will remain unchanged.
           (http://proguard.sourceforge.net/manual/troubleshooting.html#dependency)
  Warning:there were 5 unresolved references to program class members.
           Your input classes appear to be inconsistent.
           You may need to recompile the code.
           (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedprogramclassmember)
  :vet:proguardInternalRelease FAILED
  Error:Execution failed for task ':PROJECTNAME:proguardInternalRelease'.
  &gt; java.io.IOException: Please correct the above warnings first.
  Information:BUILD FAILED
  Information:Total time: 13.878 secs
  Information:1 error
  Information:679 warnings
  Information:See complete output in console
  </code></pre>
  
  <p>The project is formed by a library project, imported as external project like this in <code>settings.gradle</code>:</p>
  
  <pre><code>include ':library'
  project(':library').projectDir = new File(settingsDir, '../Library/library')
  </code></pre>
  
  <p>with all the dependencies.</p>
  
  <p>The <code>build.gradle</code> of the library is</p>
  
  <pre><code>apply plugin: 'com.android.library'
  
  android {
      compileSdkVersion 21
      buildToolsVersion "21.1.2"
  
      defaultConfig {
          minSdkVersion 15
          targetSdkVersion 21
          multiDexEnabled true
      }
  
      packagingOptions {
          exclude 'META-INF/DEPENDENCIES'
          exclude 'META-INF/NOTICE'
          exclude 'META-INF/LICENSE'
          exclude 'META-INF/LICENSE.txt'
          exclude 'META-INF/NOTICE.txt'
      }
  
  }
  
  dependencies {
      compile 'com.google.android.gms:play-services:+'
      compile 'com.android.support:support-v13:21.0.+'
      compile 'com.android.support:multidex:1.0.0'
      compile('ch.acra:acra:4.5.0') {
          exclude group: 'org.json'
      }
      compile 'org.apache.httpcomponents:httpcore:4.3'
      compile('org.apache.httpcomponents:httpmime:4.3.1') {
          exclude group: 'org.apache.httpcomponents', module: 'httpcore'
          exclude group: 'org.apache.httpcomponents', module: 'httpclient'
      }
      compile('javax.mail:mail:1.4.7') {
          exclude module: 'activation'
      }
      compile 'com.madgag.spongycastle:pkix:1.50.0.0'
      compile 'org.ccil.cowan.tagsoup:tagsoup:1.2.1'
      compile ('com.itextpdf.tool:xmlworker:5.5.1'){
          exclude module: 'itextpdf'
      }
      compile('com.thoughtworks.xstream:xstream:1.4.4') {
          exclude group: 'xmlpull', module: 'xmlpull'
      }
      compile 'com.google.zxing:core:3.0.1'
      compile files('libs/activation.jar')
      compile files('libs/additionnal.jar')
      compile files('libs/miniTemplator.jar')
      compile files('libs/itextg-5.5.1.jar')
  }
  </code></pre>
  
  <p>and the project <code>build.gradle</code> is</p>
  
  <pre><code>apply plugin: 'com.android.application'
  
  android {
      compileSdkVersion 21
      buildToolsVersion "21.1.2"
  
      defaultConfig {
          applicationId "my.package.name"
          minSdkVersion 15
          targetSdkVersion 21
          multiDexEnabled true
      }
  
      buildTypes {
          release {
              minifyEnabled true
              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
          }
      }
  
      productFlavors {
          def BOOLEAN = "boolean"
          def TRUE = "true"
          def FALSE = "false"
          def A_FIELD= "A_FIELD"
  
          internal {
              buildConfigField BOOLEAN, A_FIELD, FALSE
          }
  
          official {
              buildConfigField BOOLEAN, A_FIELD, TRUE
          }
      }
  
  
      packagingOptions {
          exclude 'META-INF/DEPENDENCIES'
          exclude 'META-INF/NOTICE'
          exclude 'META-INF/LICENSE'
          exclude 'META-INF/LICENSE.txt'
          exclude 'META-INF/NOTICE.txt'
      }
  }
  
  dependencies {
      compile project(':library')
  }
  
  afterEvaluate {
      tasks.matching {
          it.name.startsWith('dex')
      }.each { dx -&gt;
          if (dx.additionalParameters == null) {
              dx.additionalParameters = []
          }
          dx.additionalParameters += '--multi-dex'
      }
  }
  </code></pre>
  
  <p>How do I fix it so the APK can be compiled?</p>
  
  <p>EDIT: After added a lot of -dontwarn options to my proguard-rules.pro, I got the error anyway, and I can't resolve these warnings (<a href="http://proguard.sourceforge.net/manual/troubleshooting.html" rel="noreferrer" title="here">Here</a> there are some hints, but not for these warnings...):</p>
  
  <pre><code>Warning:com.itextpdf.text.pdf.security.PdfPKCS7: can't find referenced method 'ASN1Integer(int)' in program class org.spongycastle.asn1.ASN1Integer
  Warning:com.sun.activation.viewers.ImageViewer: can't find referenced method 'java.awt.Component add(java.awt.Component)' in program class com.sun.activation.viewers.ImageViewer
  Warning:com.sun.activation.viewers.ImageViewer: can't find referenced method 'java.awt.Toolkit getToolkit()' in program class com.sun.activation.viewers.ImageViewer
  Warning:com.sun.activation.viewers.ImageViewer: can't find referenced method 'void invalidate()' in program class com.sun.activation.viewers.ImageViewer
  Warning:com.sun.activation.viewers.ImageViewer: can't find referenced method 'void validate()' in program class com.sun.activation.viewers.ImageViewer
  Warning:com.sun.activation.viewers.ImageViewer: can't find referenced method 'void doLayout()' in program class com.sun.activation.viewers.ImageViewer
  Warning:com.sun.activation.viewers.ImageViewerCanvas: can't find referenced method 'void invalidate()' in program class com.sun.activation.viewers.ImageViewerCanvas
  Warning:com.sun.activation.viewers.ImageViewerCanvas: can't find referenced method 'void repaint()' in program class com.sun.activation.viewers.ImageViewerCanvas
  Warning:com.sun.activation.viewers.TextEditor: can't find referenced method 'void setLayout(java.awt.LayoutManager)' in program class com.sun.activation.viewers.TextEditor
  Warning:com.sun.activation.viewers.TextEditor: can't find referenced method 'void invalidate()' in program class com.sun.activation.viewers.TextEditor
  Warning:com.sun.activation.viewers.TextViewer: can't find referenced method 'void setLayout(java.awt.LayoutManager)' in program class com.sun.activation.viewers.TextViewer
  Warning:com.sun.activation.viewers.TextViewer: can't find referenced method 'java.awt.Component add(java.awt.Component)' in program class com.sun.activation.viewers.TextViewer
  Warning:com.sun.activation.viewers.TextViewer: can't find referenced method 'void invalidate()' in program class com.sun.activation.viewers.TextViewer
  Warning:javax.activation.ActivationDataFlavor: can't find referenced method 'boolean isMimeTypeEqual(java.awt.datatransfer.DataFlavor)' in program class javax.activation.ActivationDataFlavor
  Warning:there were 14 unresolved references to program class members.
           Your input classes appear to be inconsistent.
           You may need to recompile the code.
           (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedprogramclassmember)
  :vet:proguardInternalRelease FAILED
  Error:Execution failed for task ':vet:proguardInternalRelease'.
  &gt; java.io.IOException: Please correct the above warnings first.
  </code></pre>