2013-11-22 51 views
5

ile bilinmeyen sınıf 'Nesne' notu Android Studio'da yeni bir proje oluşturdum ve bunu oluşturmak için Gradle'ı kullanıyorum.Android Studio ve Gradle

Ben serbest bırakılması için benim Proguard entegrasyon oluşturur ve bu Not Ekle Benim assembleRelease adım çalıştırmak her zaman görüyorum ekledik:

Android SDK benim Proguard yapılandırma dosyaları veya olanların
Note: the configuration refers to the unknown class 'Object' 
     Maybe you meant the fully qualified name 'java.lang.Object'? 

Yok klasör, nitelenmemiş bir ad Object içerir.

Benim build.gradle içerir:

buildTypes { 
    release { 
     runProguard true 
     proguardFile 'proguard-project.txt' 
     proguardFile getDefaultProguardFile('proguard-android-optimize.txt') 

     signingConfig signingConfigs.release 
    } 
} 

ben bile yukarıda hem proguardFile satırları kaldırmak ve aynı Not bakınız ayrıca benim özel Proguard kuralları (her zaman yeniden inşa önce temiz yapıyor) silerseniz.

Bu, Gradle için Proguard eklentisi ile iyi huylu bir sorun olduğunu tahmin ediyorum.

cevap

11

Öneri Eric Lafortune için teşekkürler! Proguard.txt dosyasına -printconfiguration eklemek, sorunun google-play-services_lib (r13) aşamasında olduğunu ortaya çıkardı.

suçlu Proguard kural

(o java.lang.Object[][] olmalıdır) 'dir: Daha sonra sdk/extras/google/google_play_services/libproject/google-play-services_lib/proguard.txt gidin, Android Studio sağ tıklayarak bir Mac üzerinde görüyoruz Show Package Contents yapabilirsiniz

-keep class * extends java.util.ListResourceBundle { 
    protected Object[][] getContents(); 
} 

.

En hızlı çözüm kendi Proguard yapılandırmanıza doğru Proguard kuralı eklemektir ve yalnızca Proguard Notunu göz ardı etmektir.

-keep class * extends java.util.ListResourceBundle { 
    protected java.lang.Object[][] getContents(); 
} 

Ben Android Issue #63095 olarak Google ile bu hatayı kaldırdı.

+1

Kuralı ekledim ama hala şikayet ediyor. Sanırım bu, eski kuralın kendi kuralımdan sonra yapılandırma dosyasında asılı kalmasıdır. Bu etrafında çalışmak için bir yolu var mı? – sttaq

5

Android SDK'da Object için herhangi bir nitelendirilmemiş başvurunun farkında değilim, ancak tüm yapılandırmayı yazmak ve başvuruya bakmak için -printconfiguration config.txt seçeneğini belirtebilirsiniz. Gözden geçirmesi kolay bir yöntem argümanı veya bir dönüş değeri olabilir.

+0

Bu seçeneği nerede/nasıl belirleriz? Hangi komutun bir parçası olarak? Ve hangi txt dosyasına karşı ??? –

+0

Projemdeki proguard kural dosyalarından birine -printconfiguration config.txt 'eklemeyi denedim ancak uygulamanızı oluştururken şu hata iletisini alıyorum: 'Flag -printconfiguration config.txt, yerleşik shrinker tarafından desteklenmiyor. –