2015-05-12 24 views
19

bir proguard yapılandırması nasıl eklenir? AAR file spec'a göre Android kitaplıkları bir 'proguard.txt' dosyası içerir. Anladığım kadarıyla, bu dosya kütüphanenin doğru bir şekilde nasıl gizlenebileceğini ve küçültüleceğini açıklıyor. Benim durumumda bazı API sınıflarını korumam gerekiyor.Android kitaplığımda (AAR)

Kitaplığın proguard.txt dosyasını kütüphanenin build.gradle dosyasında nasıl bildirebilirim? Kitaplığımı kullanan bir uygulama (APK) oluştururken bu dosya otomatik olarak okunacak mı?

Bu bilgiyi Android'in Gradle Plugin Kullanıcı Kılavuzu'nda bulamadım.

+0

Bu http://stackoverflow.com/questions/26983248/proguard-ignores-config-file-of-library – kevinpelgrims

+1

@kevinpelgrims Bu bir AAR dosyası dağıtma hakkında kopyası gibi görünüyor Harici kütüphane kullanıcıları için gömülü proguard yapılandırması, cevabın aynı olmasını beklemiyorum, yani kütüphane sınıfları çoklu modül yapımında iki kez küçültülmez. Sorular benzer olsa da. –

cevap

34

Gradle dosyanızın varsayılan yapılandırma kapatmasında, Proguard dosyanızı proguardFiles yerine consumerProguardFiles belirtin. Örneğin:

defaultConfig { 
    consumerProguardFiles 'proguard.txt' 
} 
+4

'ConsumerProguardFiles '' buildTypes/release' yerine 'defaultConfig' içinde belirtilmelidir, böylece tüketen uygulamanın hem hata ayıklama hem de serbest bırakma modunda çalışıp çalışmadığı (örneğin 65k dex yöntem sınırını önlemek için) çalışır. – ashughes

+0

graberin deneysel eklentisini (0.7.2) kullanıyorsanız, bu Hataya neden olur: Neden: org.gradle.api.internal.ExtensibleDynamicObject. Http://github.com/artem-zinnatullin/RxJavaProGuardRules/blob/master/rxjava-proguard-rules/build.gradle adresindeki – Loebre

+0

yapı örneğinin iyi bir örneğidir. – ultraon