2015-08-18 5 views
12

खोजने में असमर्थ:इंटेलीजे और एंड्रॉयड Gradle निर्भरता - मैं निर्देशिका संरचना निम्नलिखित है मॉड्यूल

D:\PROJECT 
+---javaGradleProject1 
+---javaGradleProject2 
+---javaGradleProject3 
\---AndroidProject 
    | build.gradle 
    | settings.gradle 
    \---AndroidModule 
      build.gradle 

एंड्रॉयड मॉड्यूल जावा Gradle परियोजनाओं कि AndroidProject के रूप में रूट निर्देशिका में एक ही स्तर पर कर रहे हैं के सभी पर निर्भर करता है।

AndroidProject/settings.gradle में मेरे पास है:

include ':AndroidModule' 

include 'javaGradleProject1' 
project(':javaGradleProject1').projectDir = new File(rootDir, '../javaGradleProject1') 

include 'javaGradleProject2' 
project(':javaGradleProject2').projectDir = new File(rootDir, '../javaGradleProject2') 

include 'javaGradleProject2' 
project(':javaGradleProject2').projectDir = new File(rootDir, '../javaGradleProject2') 

और फिर AndroidProject/AndroidModule/build.gradle में मैं निर्भरता इस तरह निर्धारित किया है:

compile project(':javaGradleProject1') 
compile project(':javaGradleProject2') 
compile project(':javaGradleProject3') 

निर्भरता के इस संरचना पूरी तरह से काम करता है और जब मैं

gradle build 

एंड्रॉइडप्रोजेक्ट/build.gradle पर प्रक्षेपित करता है।

लेकिन मैं

Error: Unable to find module with Gradle path ':javaGradleProject1' 
Error: Unable to find module with Gradle path ':javaGradleProject2' 
Error: Unable to find module with Gradle path ':javaGradleProject3' 

और अपने प्रोजेक्ट (यह आईडीई में बिल्कुल संकलन नहीं करता है) रन विन्यास से नहीं चलाया जा सकता है कि की वजह से प्राप्त जब मैं वर्तमान Gradle निर्भरता सेटिंग्स के साथ मेरी इंटेलीजे सिंक्रनाइज़ करने का प्रयास। मैं इन निर्भरताओं को मैन्युअल रूप से F4 और मॉड्यूल निर्भरताओं को मारकर जोड़ने की कोशिश कर रहा था लेकिन सिंक्रनाइज़ेशन के बाद मेरे सभी परिवर्तन ओवरराइट किए गए हैं (वास्तव में, IntelliJ बस इसे हटा देता है)।

क्या मेरे ग्रेडल संरचना में कुछ गड़बड़ है?

मैंने इसे इंटेलिजे आईडीईए 14.1.4 और एंड्रॉइड स्टूडियो 1.3 पर परीक्षण किया है।

उत्तर

19

मैं सेटिंग को हटाकर इसे हल करने में सक्षम था। प्रत्येक ग्राडल प्रोजेक्ट से ट्रांसग्लू फ़ाइल जिसे मैं निर्भरता के रूप में उपयोग करना चाहता था (इस फ़ाइल की सामग्री साफ़ करना पर्याप्त नहीं था)।

नोट: जैसा कि मुझे ग्रैडल और एंड्रॉइड स्टूडियो का थोड़ा ज्ञान नहीं है, मैं इस बारे में जानकारी नहीं दे सकता कि इस फ़ाइल की उपस्थिति एंड्रॉइड स्टूडियो को मॉड्यूल के रूप में ग्रैडल प्रोजेक्ट को शामिल करने की अनुमति क्यों नहीं देती है।

0

राइट क्लिक करें परियोजना,

"कॉन्फ़िगर परियोजना सबसेट ..."

का चयन करें और अपने मॉड्यूल का चयन करें, अपनी परियोजना के पुनर्निर्माण।

+0

जब मैं अपने प्रोजेक्ट पर राइट क्लिक करता हूं तो मुझे संदर्भ मेनू में यह विकल्प नहीं दिखाई देता है। क्या आप अधिक जानकारी प्रदान कर सकते हैं? – Aralox

+0

'प्रोजेक्ट' टैब पर राइट क्लिक करें। अपनी परियोजना चुनें। उस पर राइट क्लिक करें और आपको यह विकल्प देखना चाहिए। मैंने अभी इसे आज ही सत्यापित किया है। –

+0

ठीक है, मुझे लगता है कि मेरी समस्या यह है कि मैं एंड्रॉइड स्टूडियो की बजाय इंटेलिजे आईडीईए का उपयोग कर रहा हूं। लेकिन मैंने इस समस्या का समाधान किया है, तो यह सब अच्छा है। वैसे भी वरुण धन्यवाद। – Aralox

0

जब आप इसे settings.gradle में जोड़ते हैं तो अपने मॉड्यूल के नाम से पहले एक कोलन जोड़ें (उदा। पहले एक के लिए, यह बदलने के लिए:

include 'javaGradleProject1' 
project(':javaGradleProject1').projectDir = new File(rootDir, '../javaGradleProject1') 
इस के लिए

:

include ':javaGradleProject1' 
project(':javaGradleProject1').projectDir = new File(rootDir, '../javaGradleProject1') 

अब संकलन के अलावा, इंटेलीजे/एंड्रॉयड स्टूडियो आप कोड पूरा होने देना चाहिए।

0

मेरे मामले में मुझे बाहरी मॉड्यूल नाम केवल लोअरकेस में बदलना पड़ा।

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