Obtención de errores "EnclosingMethod" al compilar en Android Studio 2
android-studio-2.0 (4)
Estoy obteniendo los errores de compilación por debajo de cuando ejecuto la aplicación en Android Studio 2. Estos errores no aparecían cuando usaba la versión anterior de 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.
¿Cuáles son estos errores y cómo resolverlos? Además, el apk funciona bien y la aplicación también funciona perfectamente.
Actualización 2016/09/19
Esto se solucionó en LeakCanary 1.4, por lo que simplemente actualizarlo debería solucionarlo sin necesidad de meterse con una versión alternativa de haha
.
debugCompile ''com.squareup.leakcanary:leakcanary-android:1.4''
Previamente
Estas advertencias son causadas por haha:2.0.2
, que es una dependencia de leakcanary-android:1.4-beta2
.
Está corregido en haha:2.0.3
, por lo que puede solucionarlo utilizando explícitamente la versión más nueva en sus dependencias. Agregue esta línea para cada sabor donde está agregando una dependencia de leakcanary
. No necesita agregarlo para leakcanary-android-no-op
, ya que no tiene dependencias.
debugCompile ''com.squareup.haha:haha:2.0.3''
Añadiendo
-keepattributes EnclosingMethod
el archivo de configuración de proguard (en mi caso, proguard.cfg
) parece haber solucionado esto.
Estaba recibiendo el mismo error. Parece que hubo algún problema con leakcanary (en mi caso). Intenté seguir los cambios en el archivo proguard.
-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
Ya no estoy recibiendo esos problemas. Aquí está el link
Resolví el problema agregando la siguiente dependencia a mi build.gradle:
testCompile "com.squareup.leakcanary: leakcanary-android-no-op: 1.4-beta2"
aquí hay un enlace: https://github.com/square/leakcanary/issues/491