title: Android: Dex cannot parse version 52 byte code
body: <p>I just switched to Android Studio 2.1 and this error showed up when trying to compile an app the was previously working:</p>
  
  <blockquote>
  <pre><code>Error:Error converting bytecode to dex:
  Cause: Dex cannot parse version 52 byte code.
  This is caused by library dependencies that have been compiled using Java 8 or above.
  If you are using the 'java' gradle plugin in a library submodule add 
  targetCompatibility = '1.7'
  sourceCompatibility = '1.7'
  to that submodule's build.gradle file.
  </code></pre>
  </blockquote>
  
  <p>I had already updated the main project's gradle.build file to force Java 1.7 code generation:</p>
  
  <pre><code>buildscript {
      repositories {
          jcenter()
      }
      dependencies {
          classpath 'com.android.tools.build:gradle:2.1.0'
          apply plugin: 'java'
          sourceCompatibility = 1.7
          targetCompatibility = 1.7
      }
  }
  </code></pre>
  
  <p>I had also updated the module gradle.build as follows to set the java version:</p>
  
  <pre><code>android {
  compileSdkVersion 19
  buildToolsVersion "23.0.2"
  
  defaultConfig {
      applicationId "com.abc.def"
      minSdkVersion 19
      targetSdkVersion 19
  }
  
  buildTypes {
      release {
          minifyEnabled false
          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
      }
  }
  compileOptions {
      sourceCompatibility JavaVersion.VERSION_1_7
      targetCompatibility JavaVersion.VERSION_1_7
  }
  }
  </code></pre>
  
  <p>The submodule being built with Maven.  In the pom.xml file I have also tried to force 1.7 code generation.<br>
  I understand that I am using an assembly artifact, which incorporates subordinate modules, but i have not changed any of the subordinate modules and the resulting .jar file for the module ran fine last time I compiled.</p>
  
  <pre><code>    &lt;build&gt;
      &lt;plugins&gt;
          &lt;plugin&gt;
              &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
              &lt;artifactId&gt;maven-assembly-plugin&lt;/artifactId&gt; &lt;!-- maven-compiler-plugin --&gt;
              &lt;version&gt;2.6&lt;/version&gt;
              &lt;configuration&gt;
                  &lt;source&gt;1.7&lt;/source&gt;
                  &lt;target&gt;1.7&lt;/target&gt; 
                  &lt;descriptorRefs&gt;
                      &lt;descriptorRef&gt;jar-with-dependencies&lt;/descriptorRef&gt;
                  &lt;/descriptorRefs&gt;
              &lt;/configuration&gt;
              &lt;executions&gt;
                  &lt;execution&gt;
                      &lt;id&gt;make-assembly&lt;/id&gt; &lt;!-- this is used for inheritance merges --&gt;
                      &lt;phase&gt;package&lt;/phase&gt; &lt;!-- bind to the packaging phase --&gt;
                      &lt;goals&gt;
                          &lt;goal&gt;single&lt;/goal&gt;
                      &lt;/goals&gt;
                  &lt;/execution&gt;
              &lt;/executions&gt;
          &lt;/plugin&gt;
      &lt;/plugins&gt;
  &lt;/build&gt;
  </code></pre>
  
  <p>My question: 
  1) Is this an Android Studio 2.1 problem?  Have others seen it?
  2) Assuming this is my error and since the error message gives no help in finding the bad module, are there any recommendations on finding the V52 code?  I can't just omit the libraries without breaking large amount of code.  Can one inspect a .jar file to find the code revision?
  Thanks in advance.
  -Hephaestus</p>