30 votes

De la "EnclosingMethod" erreurs sur la construction dans Android Studio 2

Je suis en dessous de construire des erreurs quand je suis en cours d'exécution de l'application sur l'Android Studio 2. Ces erreurs n'étaient pas là quand j'ai été en utilisant une version antérieure d'Android Studio.

Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.squareup.haha.guava.base.Joiner$1) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.squareup.haha.guava.collect.Iterables$2) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.squareup.haha.guava.collect.Iterables$3) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.

Quelles sont ces erreurs et comment les résoudre? Aussi, l'apk est la construction d'amende et l'application fonctionne également parfaitement.

30voto

Sky Kelsey Points 3405

Mise à jour 2016/09/19

C'est corrigé dans la LeakCanary 1.4, donc simplement mettre à jour devrait résoudre le problème sans avoir besoin de perdre avec une autre version d' haha.

debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4'

Auparavant

Ces avertissements sont causés par haha:2.0.2, ce qui est une dépendance de l' leakcanary-android:1.4-beta2.

Il fixe, en haha:2.0.3, de sorte que vous pouvez résoudre le problème en utilisant explicitement la version la plus récente dans vos dépendances. Ajouter cette ligne pour chaque saveur lorsque vous ajoutez un leakcanary de dépendance. Vous n'avez pas besoin de l'ajouter pour leakcanary-android-no-op, car il n'a pas de dépendances.

debugCompile 'com.squareup.haha:haha:2.0.3'

15voto

fattire Points 180

L'ajout d'

-keepattributes EnclosingMethod

pour proguard du fichier de configuration (dans mon cas, proguard.cfg) semble avoir corrigé cela.

5voto

Abhishek Patidar Points 120

J'ai été faire la même erreur. Il semble qu'il y ait un problème avec leakcanary (dans mon cas). J'ai essayé de suivre les changements dans proguard fichier.

-dontwarn com.squareup.haha.guava.**
-dontwarn com.squareup.haha.perflib.**
-dontwarn com.squareup.haha.trove.**
-dontwarn com.squareup.leakcanary.**
-keep class com.squareup.haha.** { *; }
-keep class com.squareup.leakcanary.** { *; }

# Marshmallow removed Notification.setLatestEventInfo()
-dontwarn android.app.Notification

Je ne suis pas d'obtenir ces problème de plus. Voici le lien

2voto

Miceking Points 21

J'ai résolu le problème en ajoutant la suite de dépendance à mon construire.gradle:

testCompile "com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2"

voici le lien:https://github.com/square/leakcanary/issues/491

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X