मैं एंड्रॉइड स्टूडियो में अपनी लाइब्रेरी के लिए अनार फ़ाइल बनाना चाहता हूं, मैं एक जार विकल्प के साथ गया होगा, लेकिन मेरी लाइब्रेरी में संसाधन हैं।
किसी भी विचार कैसे एक पुस्तकालय से अनार फ़ाइल बनाने के लिए?
मैं एंड्रॉइड स्टूडियो में अपनी लाइब्रेरी के लिए अनार फ़ाइल बनाना चाहता हूं, मैं एक जार विकल्प के साथ गया होगा, लेकिन मेरी लाइब्रेरी में संसाधन हैं।
किसी भी विचार कैसे एक पुस्तकालय से अनार फ़ाइल बनाने के लिए?
जवाबों:
यदि आपकी लाइब्रेरी को एंड्रॉइड लाइब्रेरी के रूप में सेट किया गया है (अर्थात यह apply plugin: 'com.android.library'
अपनी बिल्ड.ग्रेड फ़ाइल में स्टेटमेंट का उपयोग करता है ), यह निर्मित होने पर एक .AR का आउटपुट देगा। यह बिल्ड / आउटपुट / aar / में दिखाई देगा आपके मॉड्यूल की डायरेक्टरी में डायरेक्टरी में दिखाई देगा।
नई Android लाइब्रेरी बनाने के लिए आप फ़ाइल> न्यू मॉड्यूल में "एंड्रॉइड लाइब्रेरी" प्रकार चुन सकते हैं।
aar
मुझे उत्पन्न करने के लिए , मुझे Build > Rebuild Project
एंड्रॉइड स्टूडियो में एक करना था । बस रनिंग, डिबगिंग या बिल्डिंग एपीके aar
मेरे लिए उत्पन्न नहीं हुआ ।
./gradlew moduleName:assembleRelease
टर्मिनल टैब में होने का तेज तरीका
यदि आपके पास एक एंड्रॉइड लाइब्रेरी प्रोजेक्ट के रूप में परिभाषित एक मॉड्यूल है, तो आपको build/outputs/aar/
उस प्रोजेक्ट की निर्देशिका में सभी बिल्ड फ़्लेवर (डिबग और रिलीज़ बाय डिफॉल्ट) के लिए .AR फाइलें मिलेंगी ।
your-library-project
|- build
|- outputs
|- aar
|- appframework-debug.aar
- appframework-release.aar
यदि ये फ़ाइलें मौजूद नहीं हैं, तो एक बिल्ड के साथ शुरू करें
gradlew assemble
macOS उपयोगकर्ताओं के लिए
./gradlew assemble
लाइब्रेरी प्रोजेक्ट में एक build.gradle
फ़ाइल होती है apply plugin: com.android.library
। इस पुस्तकालय के संदर्भ में.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
फ़ोल्डर में छोड़ सकते हैं और 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:0.1.0@aar'
}
ग्रेडेल में स्थानीय निर्भरता फ़ाइलों को संदर्भित करने के लिए वैकल्पिक विकल्प यहां देखे जा सकते हैं: http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project
यदि आपको .aar
अपने संगठन के भीतर इन फ़ाइलों को साझा करने की आवश्यकता है तो मावेन की जांच करें। इस विषय पर एक अच्छा लेखन पाया जा सकता है: https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-android-archive- पुस्तकालय-आर-पार
अनार फाइल सिर्फ एक .zip
वैकल्पिक एक्सटेंशन और विशिष्ट सामग्री के साथ है। विवरण के लिए aar प्रारूप के बारे में इस लिंक को देखें ।
gradlew assemble
- इससे मुझे जो समस्या हो रही थी, वह हल हो गई।
gradlew
में एक स्क्रिप्ट है ।
जैसे उपयोगकर्ता hcpl ने कहा लेकिन अगर आप लाइब्रेरी के संस्करण के बारे में चिंता नहीं करना चाहते हैं तो आप ऐसा कर सकते हैं:
dependencies {
compile(name:'mylibrary', ext:'aar')
}
के रूप में संस्करण को अद्यतन करने के लिए कष्टप्रद की अपनी तरह के रूप में। इसके अलावा यह नाम अंतरिक्ष के बारे में चिंता इस तरह से आसान नहीं बनाता है।
एक ही सूत्र में hcpl के उत्तर में उल्लिखित पहले और दूसरे चरण का अनुसरण करने के बाद , हमने '* .aar'], dir: 'libs' को हमारे एंड्रॉइड-ऐप-ऐप-आधारित-आधारित-ग्रेड / ऐप / में जोड़ा । build.gradle फ़ाइल जैसा कि नीचे दिखाया गया है:
...
dependencies {
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
...
हमारा वर्गीकृत संस्करण com.android.tools.build:gradle:3.2.1 है
AAR बनाने के लिए
नीचे दिए गए चरणों का पालन करते हुए।
File->New->New Module->Android Library and create
।
एएआर उत्पन्न करने के लिए
एंड्रॉइड स्टूडियो में शीर्ष दाएं फलक पर वर्गीकृत करने के लिए नीचे दिए गए चरणों का पालन करें।
Gradle->Drop down library name -> tasks-> build-> assemble or assemble release
AAR बिल्ड / आउटपुट / aar / में उत्पन्न होगा
लेकिन अगर हम चाहते हैं कि AAR आपके द्वारा नाम के साथ प्रोजेक्ट डायरेक्टरी में विशिष्ट फ़ोल्डर में उत्पन्न किया जाए build.gradle
, तो नीचे दिए गए एप्लिकेशन स्तर को संशोधित करें
defaultConfig {
minSdkVersion 26
targetSdkVersion 28
versionCode System.getenv("BUILD_NUMBER") as Integer ?: 1
versionName "0.0.${versionCode}"
libraryVariants.all { variant ->
variant.outputs.all { output ->
outputFileName = "/../../../../release/" + ("your_recommended_name.aar")
}
}
}
अब यह प्रोजेक्ट डायरेक्टरी में नाम "रिलीज" के साथ फ़ोल्डर बनाएगा जिसमें एएआर होगा।
btw @AR में सकर्मक निर्भरता नहीं है। इसे चालू करने के लिए आपको एक पैरामीटर की आवश्यकता होती है: एरे लाइब्रेरी के लिए संचरित का उपयोग करते हुए संचरित निर्भरताएं हल नहीं होती हैं