2013-07-08 16 views
8

मैं एंड्रॉइड स्टूडियो (GameBaseUtils) में निर्भरता के रूप में निर्देशिका जोड़ने का प्रयास कर रहा हूं। मैंने अन्य एसओ उत्तरों को अपने विशेष मुद्दे के लिए सही ग्रेडल कॉन्फ़िगरेशन पोस्ट करने को देखा है, हालांकि मुझे समझ में नहीं आता कि मैं अपनी स्थिति के जवाब कैसे अनुकूलित कर सकता हूं।एंड्रॉइड स्टूडियो आयात मॉड्यूल ग्रैडल बिल्ड त्रुटि

यहाँ मैं क्या किया है:

चरण: फ़ाइल> आयात मॉड्यूल -> निर्देशिका पर नेविगेट करें और उसे चुनें।

चरण दो-: फ़ाइल-> परियोजना संरचना-> मॉड्यूल-> मेरा आवेदन चुनें-> निर्भरता-> मॉड्यूल को मेरे प्रोजेक्ट पर निर्भरता के रूप में जोड़ें।

अब मेरे कोड में कोई लाल रेखा नहीं है जो मॉड्यूल को आयात करने में त्रुटि दर्शाती है। लेकिन जब मैं निर्माण मैं निम्नलिखित त्रुटियाँ प्राप्त का चयन करें:

Gradle: package com.google.example.games.basegameutils does not exist 
Gradle: cannot find symbol class BaseGameActivity 
Gradle: cannot find symbol variable super 
... 

यहाँ अपने आवेदन

buildscript { 
repositories { 
    mavenCentral() 
} 
dependencies { 
    classpath 'com.android.tools.build:gradle:0.4' 
} 
} 
apply plugin: 'android' 

dependencies { 
compile files('libs/android-support-v4.jar') 
} 

android { 
compileSdkVersion 17 
buildToolsVersion "17.0.0" 

defaultConfig { 
    minSdkVersion 8 
    targetSdkVersion 17 
} 
} 

कैसे मैं सही ढंग से इस बाहरी पुस्तकालय आयात कर सकते हैं और आप कृपया समझा सकते हैं कि कैसे और के लिए build.gradle फ़ाइल है आपका समाधान क्यों काम करता है?

उत्तर

8
इसलिए यहाँ

कैसे मैं मेरी समस्या हल है

dependencies { 
    compile files('libs/android-support-v4.jar', '../Module') 
} 

2 डॉट्स का कहना है कि मॉड्यूल (या निर्देशिका) वास्तविक एक से ऊपर 1 निर्देशिका में पाया जा सकता है। इसलिए यदि आप एक मॉड्यूल तक पहुंचना चाहते हैं जो आपके ऊपर 2 निर्देशिका है, तो आपको केवल लिखना होगा: '../../ModuleName'

आपको build.gradle में मैन्युअल रूप से मॉड्यूल जोड़ना होगा क्योंकि एंड्रॉइड स्टूडियो अभी भी विकास में है और यह समाप्त नहीं हुआ है परियोजना संरचना को संपादित करने के लिए यूआई।

यदि यह आपकी समस्या का समाधान नहीं करता है तो इसे इस तरह बनाने का प्रयास करें: (मैं इस विधि की अनुशंसा करता हूं।

  • परियोजना

    • पुस्तकालयों (सामान्य फ़ोल्डर)
      • Module2
    • Module1
    • : यह कैसे मैं वास्तव में यह कर)

      Examplestructure है

settings.gradle

include ':Module1', ':libraries:Module2' 

build.gradle (Module1)

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 
apply plugin: 'android' 

dependencies { 
    compile project(':libraries:Module2') 
} 

android { 
    compileSdkVersion 18 
    buildToolsVersion "18.0.1" 

    defaultConfig { 
     minSdkVersion 8 
     targetSdkVersion 11 
    } 
} 

build.gradle (Module2)

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 
apply plugin: 'android-library' 

dependencies { 
    compile 'com.android.support:support-v4:18.0.0' 
} 

android { 
    compileSdkVersion 18 
    buildToolsVersion "18.0.1" 

    defaultConfig { 
     minSdkVersion 8 
     targetSdkVersion 11 
    } 

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

यह अब अच्छी तरह से काम करना चाहिए। सब कुछ 100% काम करने के लिए इस कदम का पालन करें:

  1. .idea फ़ोल्डर
  2. पुनः प्रारंभ एंड्रॉयड स्टूडियो को नष्ट सभी *.iml फ़ाइलों को हटाने और प्रेस Import Project
  3. अपने Gradle परियोजना के साथ निर्देशिका का चयन करें
  4. Import project from external model > ग्रैडल> अगला>

इस कदम के साथ सबकुछ ठीक से काम करना चाहिए। अगर कोई समस्या है तो मुझे बताएं :)

+0

क्या आपके लिंक के उत्तर के लिए लिंक बदल गया है? यह वास्तव में मेरी मदद करता था, और मैं इसे जवाब के रूप में स्वीकार करना चाहता हूं। – KDEx

+0

मैंने अपना जवाब सुधार लिया। पहला लिंक जिस लिंक को मैंने हटा दिया है उसका तरीका है। दूसरा वह है जिसे मैं अनुशंसा करता हूं – maysi

-1

स्टूडियो इंटरफ़ेस के माध्यम से मॉड्यूल जोड़ें न करें। हमेशा बदलावों को सीधे build.gradle में बनाएं और फिर स्टूडियो में पुनः आयात करें।

साथ ही, नवीनतम 0.4 प्राप्त करने के लिए com.android.tools.build:gradleft.4.+ पर प्लगइन निर्भरता अपडेट करें। * संस्करण।

के बजाय जोड़ने

dependencies { 
    compile files('libs/android-support-v4.jar') 
    compile project(':Module') 
} 

आप लिखने के लिए है:

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