दिलचस्प पोस्ट
भविष्य का नाशक `std :: async 'अवरोधन से क्यों लौट आया है? आप पायथन में वापसी कथन का उपयोग क्यों करेंगे? मूल सरल asp.net + jQuery + JSON उदाहरण 'निर्भरता' को '(groovy.lang.Closure)' पर लागू नहीं किया जा सकता है सी – संरचना के अंदर फ़ंक्शन सी में "अप्रयुक्त पैरामीटर" चेतावनी स्प्रिंग कॉन्फ़िगर @ रिस्पॉंसबोर्ड जोसन प्रारूप हल करने में विफल: com.google.firebase: firebase-core: 11.2.0 जावास्क्रिप्ट में संदर्भ के द्वारा एक स्ट्रिंग पास करें जावा में समय के अंतर की गणना कैसे करें? मैं jQuery के उपयोग से एक DropDownList का मान कैसे सेट कर सकता हूं? यूआरएल / पोर्ट से सर्वर सर्च जोड़ने के लिए जावा कीटोलोल आसान तरीका वेब एप्लिकेशन में स्टेटस ईजेबी कैसे सी # में XML के साथ निपटने के लिए ओरेकल में मूल्यों की सूची से मैं कैसे चुन सकता हूं

स्थानीय .aar फ़ाइलों को मेरे ग्रेडेल बिल्डिंग में जोड़ना

इसलिए मैंने एक एंड्रॉइड-लाइब्रेरी बनाई है और इसे सफलतापूर्वक एक .aar फ़ाइल में संकलित किया है जिसे मैंने इस aar फ़ाइल में कहा था: "projectx-sdk-1.0.0.aar" अब मुझे मेरी नई परियोजना को इस एर पर निर्भर करना है ताकि मैं क्या करूँ इस पोस्ट का पालन करें: http://life.nimbco.us/referencing-local-ar-files-with-android-studios-new-gradle-based-build-system/

लेकिन पद मुझे भ्रमित करता है क्योंकि मुझे वांछित परिणाम नहीं मिलता है:

एर का पैकेज नाम है: com.projectx.photosdk और अंदर मॉड्यूल sdk कहा जाता है

यहां मेरी वर्तमान परियोजना संरचना है:

 |-SuperAwesomeApp |--.idea |--gradle |--App |---aars |----projectx-sdk-1.0.0.aar |---build |---jars |---src |---build.gradle 

और वह मेरा ग्रेडेल फाइल बना रहा है:

 apply plugin: 'android' buildscript { repositories { mavenCentral() flatDir { dirs 'aars' } } } android { compileSdkVersion 19 buildToolsVersion "19.0.1" defaultConfig { minSdkVersion 11 targetSdkVersion 19 versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } dependencies { compile 'com.android.support:gridlayout-v7:19.0.1' compile 'com.android.support:support-v4:19.0.1' compile 'com.android.support:appcompat-v7:19.0.1' compile 'com.projectx.photosdk:sdk:1.0.0@aar' // compile files( 'aars/sdk-1.0.0.aar' ) // Does not work either } 

/ संपादित करें

मैं जो त्रुटियाँ प्राप्त कर रहा हूं:

 Failed to refresh Gradle project 'SuperAwesomeApp' Could not find com.projectx.photosdk:sdk:1.0.0. Required by: SuperAwesomeApp:App:unspecified 

Solutions Collecting From Web of "स्थानीय .aar फ़ाइलों को मेरे ग्रेडेल बिल्डिंग में जोड़ना"

आपने गलत repostories ब्लॉक में अपने flatDir ब्लॉक डाल दिया। buildscript अंदर buildscript repositories Gradle buildscript है कि एंड्रॉइड-ग्रेडल प्लगइन कहां पर है, लेकिन बाकी निर्भरता नहीं आपको इस तरह एक और शीर्ष-स्तरीय repositories ब्लॉक की आवश्यकता है:

 repositories { mavenCentral() flatDir { dirs 'aars' } } 

मैंने यह परीक्षण किया और यह मेरे सेटअप पर ठीक काम करता है

स्थानीय एएआर फ़ाइल का उपयोग करने के लिए, एंड्रॉइड स्टूडियो के हाल के संस्करणों के साथ, 1.3 के साथ परीक्षण किया गया है, जो कि मावेन / जेन्सेन्टर रिपॉजिटरी से नहीं लाया गया है, बस फाइल> नया> नया मॉड्यूल पर जाएं और आयात .JAR / .AAR पैकेज चुनें

आप अपने प्रोजेक्ट में एक नए मॉड्यूल के साथ क्या समाप्त करेंगे जिसमें बहुत ही सरल build.gradle फ़ाइल है जो इस तरह से अधिक या कम दिखती है:

 configurations.create("default") artifacts.add("default", file('this-is-yours-package-in-aar-format.aar')) 

बेशक, अन्य परियोजनाओं को नियमित संकलन परियोजना निर्देश के साथ इस नए मॉड्यूल का संदर्भ देना होगा। इसलिए एक ऐसी परियोजना में जो इस नए मॉड्यूल का उपयोग करता है जो कि एक स्थानीय .aar फ़ाइल में यह build.gradle है

 [...] dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' ompile 'com.android.support:appcompat-v7:23.1.0' compile 'com.android.support:design:23.1.0' [...] compile project(':name-of-module-created-via-new-module-option-described-above') } [...] 

एंड्रॉइड स्टूडियो> 1.0 के साथ ये दिन (इस प्रश्न के 1 साल बाद), स्थानीय निर्भरता ठीक से काम करती है:

  • एंड्रॉइड एसडीके निर्भरता की डिफ़ॉल्ट स्थानीय रेपो में दिखता है: $ANDROID_HOME/extras/android/m2repository/
  • स्थानीय पुस्तकालय प्रोजेक्ट में आप इस निर्देशिका में एयर प्रकाशित कर सकते हैं। यहां एक स्निपेट है जिसे आपके मॉड्यूल की build.gradle फ़ाइल में जोड़ा जा सकता है (उदा: sdk / build.gradle)

     apply plugin: 'maven' uploadArchives { repositories { mavenDeployer { repository(url: "file://localhost" + System.getenv("ANDROID_HOME") + "/extras/android/m2repository/") pom.version = '1.0-SNAPSHOT' pom.groupId = 'your.package' pom.artifactId = 'sdk-name' } } } 
  • अपनी लाइब्रेरी प्रोजेक्ट में, चलाएं ./gradlew uploadArchives को उस निर्देशिका को ./gradlew uploadArchives प्रकाशित करने के लिए
  • आवेदन प्रोजेक्ट में आप लाइब्रेरी का उपयोग करना चाहते हैं, अपनी प्रोजेक्ट / एप / बिल्ड.ग्रॅडल पर निर्भरता जोड़ें। compile 'your.package:sdk-name:1.0-SNAPSHOT'

स्थानीय निर्भरता के लिए, अगली पीढ़ी के निर्माण को पहले तैनात संग्रह को ढूंढना चाहिए और यही है!


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

 uploadArchives { repositories { mavenDeployer { if (System.getenv("BAMBOO_BUILDNUMBER") != null) { // Deploy to shared repository repository(url: "http://internal-nexus.url/path/") { authentication(userName: "user", password: "****") } pom.version = System.getenv("BAMBOO_BUILDNUMBER") } else { // Deploy to local Android sdk m2repository repository(url: "file://localhost" + System.getenv("ANDROID_HOME") + "/extras/android/m2repository/") pom.version = '1.0-SNAPSHOT' } pom.groupId = 'your.package' pom.artifactId = 'sdk-name' } } } 

मेरे आंतरिक नेक्सस रिपॉजिटरी से डाउनलोड करने के लिए एप्लिकेशन को बताने के लिए, मैंने परियोजना / बिल्ड.ग्रीड में दोनों "रिपॉजिटरी" ब्लॉकों में जेन्सेर () के ऊपर आंतरिक नेक्सस मेवेन रिपॉजिटरी जोड़ा

 repositories { maven { url "http://internal-nexus.url/path/" } jcenter() } 

और एप्लिकेशन निर्भरता तब compile 'your.package:sdk-name:45' तरह दिखाई देती है जब मैं 45 संस्करण को 46 में अपडेट करता हूं, जब मेरा प्रोजेक्ट नेक्सस सर्वर से नए आर्टिफैक्ट को प्राप्त करेगा I

ऐसा लगता है कि स्थानीय निर्भरता के रूप में .aar फाइलें अभी तक समर्थित नहीं हैं (0.5.0 बीटा में समर्थित होने की योजना बनाई गई है)

https://code.google.com/p/android/issues/detail?id=55863

लेकिन जिस तरह से आप अपनी लाइब्रेरी पर निर्भरता का उपयोग कर रहे हैं वह केवल तभी काम करेगा जब आपकी लाइब्रेरी सेंट्रल मेवेन रिपॉजिटरी या स्थानीय मेवेन रिपॉजिटरी में होगी।

मॉड्यूल निर्भरता में .aar का उपयोग करने के लिए स्थानीय Maven रिपॉजिटरी का उपयोग कैसे करें के लिए इसे देखें

http://www.flexlabs.org/2013/06/using-local-aar-android-library-packages-in-gradle-builds