2016-04-21 26 views
30

Android Studio 2'de uygulamayı çalıştırdığımda yapı hatalarımın altına düşüyorum. Android Studio'nun önceki sürümünü kullandığımda bu hatalar yoktu.Android Studio 2'de binaya "EnclosingMethod" hataları geliyor

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. 

Bu hatalar nelerdir ve nasıl çözülür? Ayrıca, apk güzel inşa ve uygulama da mükemmel çalışır.

+1

temizlemeyi denediniz mi?> – Lokanath

+0

@ Lokanath'ı tekrar deneyin, bunu zaten denedim. –

+0

Sorunu ararken, buradan çözüm var: http://stackoverflow.com/a/36523016/1263362 – Sayem

cevap

5

Aynı hatayı alıyorum. Leakcanary ile ilgili bir sorun var gibi görünüyor (benim durumumda). Proguard dosyasında aşağıdaki değişiklikleri denedim.

-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 

Artık bu sorunu alıyorum.

testCompile: İşte benim build.gradle aşağıdaki bağımlılık ekleyerek sorunu çözüldü link

30

Güncelleme 2016/09/19

Bu sabittir LeakCanary 1.4 kadar basit haha başka bir sürümü uğraşmak gerek kalmadan bunu düzeltmek gerekir yükseltme: burada bağlantıdır.

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

önce

Bu uyarılar leakcanary-android:1.4-beta2 bir bağımlılık olduğu haha:2.0.2 kaynaklanır.

haha:2.0.3'da düzeltilmiştir, bu nedenle bağımlılıklarınızdaki yeni sürümü açıkça kullanarak düzeltme yapabilirsiniz. leakcanary bağımlılığı eklediğiniz her lezzet için bu satırı ekleyin. Hiçbir bağımlılığı olmadığı için, leakcanary-android-no-op için eklemeniz gerekmez.

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

Bu sinir bozucu uyarı kurtulmak için en basit yoludur. Teşekkürler – Oleksandr

15

ekleme ProGuard yapılandırma dosyasına

-keepattributes EnclosingMethod

(benim durumumda, proguard.cfg) bu sabit gibi görünüyor.

+0

Evet, bu sorunu çözdü. – zygimantus

+0

Bu, hata ayıklama işlemleri için çalışır mı? –

+0

Hata ayıklama yapıları genellikle w/proguard yapmazlar (çünkü çok uzun zaman alır, bu nedenle çoğu yapılandırmada yoktur) .. ama sanırım ... – fattire