Android: Dex ne peut pas analyser la version 52 octets de code

Je viens de passé à Android Studio 2.1 et cette erreur a montré jusqu'lorsque vous essayez de compiler une application précédemment travail:

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.

J'avais déjà mis à jour le principal du projet gradle.build fichier à force de Java 1.7 génération de code:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'
        apply plugin: 'java'
        sourceCompatibility = 1.7
        targetCompatibility = 1.7
    }
}

J'avais aussi mis à jour le module de gradle.construire comme suit pour définir la version de java:

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
}
}

Le sous-module construit à l'aide de Maven. Dans le pom.xml fichier j'ai également essayé de force de 1,7 génération de code.

Je comprends que je suis en utilisant un assemblage artefact, qui intègre les actions subalternes à des modules, mais je n'ai pas modifié les subalternes des modules et de la .fichier jar pour le module fonctionnait bien la dernière fois j'ai compilé.

    <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId> <!-- maven-compiler-plugin -->
            <version>2.6</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target> 
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id> <!-- this is used for inheritance merges -->
                    <phase>package</phase> <!-- bind to the packaging phase -->
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Ma question:
1) Est-ce un Android Studio 2.1 problème? D'autres ont-ils vu?
2) en Supposant que c'est mon erreur et depuis le message d'erreur ne donne pas d'aide dans la recherche de la mauvaise module, existe-il des recommandations sur la recherche de la V52 code? Je ne peux pas omettre les bibliothèques sans casser une grande quantité de code. Peut-on inspecter un .le fichier jar à trouver la révision du code?
Merci à l'avance.
-Héphaïstos

  • Je suis actuellement confronté à cette erreur maintenant. Un peu de chance pour trouver des solutions?
  • Moi aussi mise à jour Android Studio 2.1. Depuis lors, je suis confronté à ce problème. Avez-vous obtenu une solution?
  • Une version antérieure du message d'erreur (qui a depuis disparu) suggère que la pubnub fichier jar est une partie du problème. Donc, nous avons commenté à toute référence à pubnub et à présent, il compile et s'exécute. Je crois que le message d'erreur a disparu lorsque nous avons ajouté les directives du compilateur (illustré ci-dessus) pour forcer le code "1.7", cependant, il semble que certains de 1,8 code était toujours en fuite à travers.
  • Voici une autre SORTE de discussion qui se rapporte: stackoverflow.com/questions/36968728/.... Mais qui ne répond pas à la question, autre que de dire "commencer avec un simple projet de test".
  • La seule chose que nous avons fait a été de sortir de la PubNub de la bibliothèque et de la remplacer par une ancienne verison. Qui semblait le fixer. Mais dans ce cas, nous avons testé en commentant la bibliothèque d'importation et de ses appels de méthode et de déterminer qu'il était en faute. Mais le PubNub de la bibliothèque a été lâchement intégré et nous avons pu nous en commentaire assez facilement. Si nous avions de nombreuses bibliothèques grâce à l'intégration étroite, il serait douloureux.
InformationsquelleAutor Hephaestus | 2016-05-04