दिलचस्प पोस्ट
document.all बनाम document.getElementById पूर्ण यूरी: http://java.sun.com/jsp/jstl/core या तो वेब.एक्सएमएल या इस एप्लिकेशन से तैनात जार फाइलों में हल नहीं किया जा सकता है अनुमति के अलावा सभी HTML टैग पट्टी करें jQuery एनिमेट पृष्ठभूमि रंग सामग्री जोड़ने से पहले requestFeature () को बुलाया जाना चाहिए सी ++ में स्ट्रिंग और चार प्रकारों के बीच का अंतर Java.math.BigInteger का उपयोग किए बिना जावा में बहुत बड़ी संख्याओं को कैसे निपटाना है Win32 पर जीसीसी के साथ असेंबली के प्रतीकों को अग्रसर करना जोड़ रहा है? एक्शन बार पर ड्रॉपडाउन आइटम कैसे जोड़ें समझ में एक असाइनमेंट के साथ एक लूप को परिवर्तित करना मैं अपनी बैच फ़ाइल को कैसे स्वत: बढ़ा सकता हूं, ताकि यह आवश्यक हो कि यूएए प्रशासक अधिकारों से अनुरोध करे? नोड। जेएस और नोड के बीच अंतर क्या है? मेमोरी-कुशल तरीके से डेटा.फ्रेम बढ़ाना SQL सर्वर में त्रिभुज (गोल नहीं) दशमलव स्थान संदर्भ: PHP के प्रिंट और इको की तुलना करें

स्थानीय .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 

वेब के समाधान से एकत्रित समाधान "स्थानीय .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