2016-02-26 42 views
3

我需要爲測試庫製作不同的風味。爲什麼?那麼,我希望項目得到充分保護,所以我希望能夠一直啓用(即使是調試構建類型)。如何在不同的風格或不同的構建類型中使用不同的proguard文件?

在進行測試時,我使用了項目中的不同類, ,所以我決定用flavor改變proguard文件。它看上去就像這樣:

android { 
    ... 
    buildTypes { 
     release { 
      minifyEnabled true 
      testProguardFile 'test-proguard-rules.pro' 
     } 
     debug { 
      minifyEnabled true 
      testProguardFile 'test-proguard-rules.pro' 
     } 
    } 
    ... 
    productFlavors{ 
     forTest{ 
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules1.pro', 'debug-rules.pro' 
     } 
     forRelease{ 
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', 'debug-rules.pro' 
     } 
    } 
} 

與proguard的規則*文件

proguard的規則:

-dontwarn blablabla.** 
-dontwarn blabla.** 
-keep class bla.** { *; } 

proguard的-rules1:

-dontshrink 
-dontobfuscate 
-dontwarn 

但是,這不是對我有幫助。我想運行測試而不模糊處理。 Flavors沒有minifyEnabled這樣的參數,所以我試圖找到任何解決方案。那麼關於解決問題的任何建議?可能有人有同樣的問題,並找到另一種解決方案(不使用口味)?

回答

6

一整天與此搞亂後,我發現了以下工作:

buildTypes { 
    release { 
     minifyEnabled true 
     shrinkResources true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 

productFlavors { 
    flavorA { 
     applicationIdSuffix ".a" 
     proguardFile 'flavorA_rules.pro' 
    } 
    flavorB { 
     applicationIdSuffix ".b" 
    } 

} 
相關問題