2012-11-30 14 views
19

Bildiğiniz gibi, Parçanın tüm alt sınıfları ortak boş bir kurucu içermelidir, ancak proguard kullanıldığında bu kurucular kaldırılacaktır. Aşağıdaki komutları belirttim ancak boş kurucu hala kaldırılmış. Kimse Fragman'ın boş yapıcısını tutmama yardım edebilir mi? Teşekkürler.Proguard'ın parçanın boş yapıcısını kaldırmasını önleyin

-keepclassmembers public class * extends android.support.v4.app.Fragment { 
    public <init>(***); 
    #public <init>(); //already tried this 
} 

-keepclassmembers public class * extends com.vng.zingtv.fragment.MyBaseFragment { 
    public <init>(***); 
    #public <init>(); //already tried this 
} 

cevap

27

Bu çalışması gerekir:

-keepclassmembers public class * extends android.support.v4.app.Fragment { 
    public <init>(...); 

Hatta bu yeterli olması gerektiğine inanıyoruz:

-keep public class * extends android.support.v4.app.Fragment 

varsayılan kurucu tutmak için ProGuard mecbur edecektir sınıfını tutarak olarak.

+0

Tüm Fragment alt sınıflarını tutmak istemediğim için ikinci seçeneği kullanmıyorum. 1. seçenek ile, henüz derlemede boş kurucuyu görmedim. Aw, cevabın için teşekkürler. – Wayne

+0

Yapıcıyı görmekten korkmamanız gerekir. Eğer varsayılan boş bir kurucu sağlıyorsanız, bu kaldırılabilir: java derleyici tarafından eklenecektir. SDK parçanızı oluşturacak olursa sorun olmaz. Çalışma zamanında herhangi bir sorunla karşılaştın mı? – Snicolas

+2

İkinci ayar gerçekten yeterli; tüm uzantıları ve otomatik olarak parametrik olmayan kurucuları (orijinal sınıflarda bulunduklarını varsayarak) saklar. –

İlgili konular