2014-06-19 12 views
113

मैं एंड्रॉयड स्टूडियो में मेरे पुस्तकालय के लिए एक आर फ़ाइल बनाने के लिए चाहते हैं, उसमें आर फ़ाइल बनाएँ, मैं एक जार विकल्प के साथ चले गए हैं, लेकिन मेरे पुस्तकालय संसाधन हैं।एंड्रॉयड स्टूडियो

किसी भी विचार कैसे एक पुस्तकालय से एक आर फ़ाइल बनाने के लिए?

उत्तर

150

अपने पुस्तकालय एक Android पुस्तकालय के रूप में सेट किया गया है (यानी यह apply plugin: 'com.android.library' बयान इसके build.gradle फ़ाइल में उपयोग करता है), यह उत्पादन एक .aar जब यह बनाया गया है होगा। यह निर्माण/आउटपुट/आर/ अपने मॉड्यूल के निर्देशिका में निर्देशिका में दिखाई देगा।

आप एक नया एंड्रॉयड लाइब्रेरी बनाने के लिए फ़ाइल में "एंड्रॉयड लाइब्रेरी" प्रकार> नया मॉड्यूल चुन सकते हैं।

+0

मुझे पता है कि यह एक पुराना विषय है, लेकिन क्या यह "संस्करण" का कोई तरीका है? जबकि .aar बनाया गया यह बहुत सरल है, क्या इसमें संस्करण संख्या लागू करने का कोई तरीका है? हम आर्टिफैक्टरी में डालने के लिए हमारी कंपनी में एक वितरित पुस्तकालय बनाना चाहते हैं और संस्करण की आवश्यकता होगी। – TheIcemanCometh

+3

संस्करण वास्तव में एएआर के लिए बाहरी है। आप आमतौर पर एक मेवेन पोम फ़ाइल स्थापित करेंगे जिसमें संस्करण जानकारी होगी। –

+0

या आप एक ग्रेडल कार्य बना सकते हैं जो आउटपुट निर्देशिका से एएआर फ़ाइल की प्रतिलिपि बनाता है और इसमें एक संस्करण जोड़ता है। – MikeL

110

स्थानीय बनाता

से आप की build/outputs/aar/ निर्देशिका में एक मॉड्यूल आप .aar सभी जायके का निर्माण (डिबग और डिफ़ॉल्ट रूप से जारी) के लिए मिल जाएगा फ़ाइलें एक Android पुस्तकालय परियोजना के रूप में परिभाषित है, तो .aar फ़ाइल निर्यात पुनर्प्राप्त वह परियोजना

your-library-project 
    |- build 
     |- outputs 
      |- aar 
       |- appframework-debug.aar 
       - appframework-release.aar 

इन फ़ाइलों

gradlew assemble 

लाइब्रेरी परियोजना विवरण

एक पुस्तकालय परियोजना apply plugin: com.android.library युक्त एक build.gradle फ़ाइल है के साथ एक निर्माण शुरू मौजूद नहीं हैं तो। .aar फ़ाइल के रूप में पैक की गई इस लाइब्रेरी के संदर्भ के लिए आपको पैकेज और संस्करण जैसे कुछ गुणों को परिभाषित करना होगा। पुस्तकालय के लिए

उदाहरण build.gradle फ़ाइल (इस उदाहरण रिलीज में कहानियो को भी शामिल है):

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.0" 

    defaultConfig { 
     minSdkVersion 9 
     targetSdkVersion 21 
     versionCode 1 
     versionName "0.1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

अपनी परियोजना

अपने ऐप्स प्रोजेक्ट में फ़ाइल .aar संदर्भ आप libs फ़ोल्डर में इस .aar फ़ाइल ड्रॉप कर सकते हैं और नीचे दिए गए उदाहरण का उपयोग करके इस लाइब्रेरी को संदर्भित करने के लिए build.gradle फ़ाइल अपडेट करें:

apply plugin: 'com.android.application' 

repositories { 
    mavenCentral() 
    flatDir { 
     dirs 'libs' //this way we can find the .aar file in libs folder 
    } 
} 

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.0.0" 

    defaultConfig { 

     minSdkVersion 14 
     targetSdkVersion 20 
     versionCode 4 
     versionName "0.4.0" 

     applicationId "yourdomain.yourpackage" 
    } 

    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
     debug { 
      minifyEnabled false 
     } 
    } 
} 

dependencies { 
    compile 'be.hcpl.android.appframework:appframework:[email protected]' 
} 

Gradle में स्थानीय निर्भरता फ़ाइलों को संदर्भित के लिए वैकल्पिक विकल्पों पर पाया जा सकता: http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project

शेयरिंग Maven

का उपयोग कर निर्भरता आप Maven की जाँच अपने संगठन के भीतर इन .aar फ़ाइलों को साझा करने की जरूरत है। इस विषय पर एक अच्छा लिखने अप पर पाया जा सकता: https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-android-archive-library-aar-across

बारे .aar फ़ाइल स्वरूप

एक आर फ़ाइल सिर्फ एक विकल्प के विस्तार और विशिष्ट सामग्री के साथ एक .zip है। विवरण के लिए this link about the aar format देखें।

+2

क्या जवाब है! thx –

+6

अद्भुत और विस्तृत उत्तर। 'Gradlew इकट्ठा' के लिए +1 - जिस समस्या को मैं हल कर रहा था हल किया। –

+0

@ एचसीपीएल मेरे एंड्रॉइड प्रोजेक्ट को .aar फ़ाइल में कैसे परिवर्तित करें – Ana

7

सिर्फ उपयोगकर्ता की तरह hcpl कहा, लेकिन आप यह कर सकते हैं अगर आप पुस्तकालय के संस्करण के बारे में चिंता नहीं करना चाहते हैं: संस्करण हर अद्यतन करने के लिए कष्टप्रद की अपनी तरह के रूप में

dependencies { 
    compile(name:'mylibrary', ext:'aar') 
} 

। इसके अलावा यह नाम स्थान के बारे में चिंताजनक नहीं है इस तरह से आसान है।

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