2014-10-21 15 views
5

मेरे पास एक बहु-प्रोजेक्ट एंड्रॉइड बिल्ड सिस्टम है। परियोजना की संरचना निम्नानुसार है:एंड्रॉइड ग्रेडल: मल्टी प्रोजेक्ट बिल्ड, टॉप लेवल build.gradle

Root Dir 
    | 
    settings.gradle 
    | 
    build.gradle 
    | 
    Apps 
     | 
     app 1 
     | 
     build.gradle 
     | 
     app 2 
     | 
     build.gradle 
    | 
    Libs 
     | 
     lib 1 
     | 
     build.gradle 
     | 
     lib 2 
     | 
     build.gradle 

सभी ऐप्स और पुस्तकालयों में सामान्य एंड्रॉइड कॉन्फ़िगरेशन होता है।

जड़ स्तर build.gradle मैं निम्नलिखित है पर:

subprojects { 
    apply plugin: 'android' 
    android { 
     compileSdkVersion "Google Inc.:Google APIs:19" 
     buildToolsVersion "20.0.0" 

     defaultConfig { 
     minSdkVersion 14 
     targetSdkVersion 19 
     } 
    } 
} 

अगला मैं अनुप्रयोग में build.gradle में निम्नलिखित को जोड़ के बारे में सोचा 1

apply plugin: 'com.android.application' 

android { 
    sourceSets { 
     main { 
     manifest.srcFile 'AndroidManifest.xml' 
     java.srcDirs = ['src'] 
     res.srcDirs = ['res'] 
     } 
    } 
} 

मैं निम्नलिखित त्रुटि मिलती है :

Cannot add extension with name 'android', as there is an extension already registered with that name. 

एंड्रॉइड के लिए ग्रेडल प्लगइन में, "मास्टर एंड्रॉइड कॉन्फ़िगरेशन" पर "जिसे उप-मॉड्यूल द्वारा बढ़ाया जा सकता है?

+0

क्या आप सुनिश्चित हैं कि समस्या दो अलग-अलग स्थानों में दो प्लगइन आईडी सेट के साथ 'लागू प्लगइन' सेट होने के साथ नहीं है? –

+0

एक गूंगा सवाल हो सकता है, क्या किसी के पास "एंड्रॉइड {...}" अनुभाग हो सकता है, जो कि ग्रेडल फ़ाइल में एंड्रॉइड प्लगइन लागू किए बिना हो सकता है? – pka

+0

नहीं, लेकिन आप पहले से ही सभी सबप्रोजेक्ट्स के लिए 'एंड्रॉइड' लगा चुके हैं। –

उत्तर

2

मुझे एक ही समस्या थी - और यह करना है कि आप अपने प्लगइन सहित कैसे हैं।

अपने "रूट" का निर्माण फ़ाइल में आप हैं:

apply plugin: 'android' 

अपने ऐप्लिकेशन में आप हैं:

apply plugin: 'com.android.application' 

बदलें जड़ एप्लिकेशन प्लगइन मैच के लिए।

संबंधित मुद्दे