2015-06-11 5 views
5

मेरे परियोजनाओं build.gradle ऐसा दिखाई देता का उपयोग करें:Proguard भी ProGuard फ़ाइलों मॉड्यूल से

android { 
    compileSdkVersion 22 
    buildToolsVersion "22.0.1" 

    defaultConfig { 
     applicationId "..." 
     minSdkVersion 15 
     targetSdkVersion 22 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile project(':androKnife') 
} 

और मेरे androKnife मॉड्यूल है कि यह खुद ProGuard फ़ाइल है है। मैं अपनी मुख्य परियोजना को इस फ़ाइल का उपयोग कैसे कर सकता हूं?

यदि कोई प्रोजेक्ट संकलित करता है, तो क्या सभी मॉड्यूल की सभी प्रोजेक्ट फ़ाइलों को ऑटो मर्ज करने का कोई तरीका है? क्या एक और तरीका है कि एक मॉड्यूल अपने प्रोजेक्ट नियमों को निर्दिष्ट कर सकता है और एक परियोजना इसे प्राप्त कर सकती है? तो मेरी androKnife पुस्तकालय ऐसा दिखाई देता consumerProguardFiles 'proguard-rules.pro'

:

उत्तर

11

समाधान पुस्तकालयों build.gradle के लिए निम्न पंक्ति जोड़ने के लिए है

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion 22 
    buildToolsVersion "22.0.1" 

    defaultConfig { 
     minSdkVersion 15 
     targetSdkVersion 22 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      consumerProguardFiles 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 

    ... 
} 
+0

क्या यह एएआर निर्भरता के लिए भी काम करता है? –

0

तो, मुख्य मॉड्यूल proguard कोड, यह पसंद है:

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

proguardFiles के आंतरिक संबंधों के सिद्धांत को कौन जानता है? ऑटो विलय या ओवरराइड जब एक ही प्रोगार्ड कोड है?