के साथ बाहरी एंड्रॉइड लाइब्रेरी प्रोजेक्ट्स मैं ग्रैडल और Android Gradle plugin के साथ एक एंड्रॉइड प्रोजेक्ट बनाने की कोशिश कर रहा हूं। मैं बाहरी (मेवेन) भंडारों में पाए जाने वाले पुस्तकालय परियोजनाओं पर निर्भर होना चाहता हूं, उदा। ActionBarSherlock।ग्रैडल
यह official site के अनुसार संभव लगता है:
Using a library is done one of the following way:
Multi-project setup. Read here: http://www.gradle.org/docs/current/userguide/multi_project_builds.html
Dependencies through a repo such as maven or ivy.
मेरी build.gradle की वर्तमान सामग्री:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.2'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
dependencies {
compile 'com.actionbarsherlock:library:4.2.0'
}
android {
target = 'android-16'
sourceSets {
main {
manifest {
srcFile 'AndroidManifest.xml'
}
java {
srcDir 'src'
}
res {
srcDir 'res'
}
assets {
srcDir 'assets'
}
resources {
srcDir 'src'
}
}
}
}
मैं Gradle 1.2 उपयोग कर रहा हूँ। जब मैं gradle assemble
साथ बनाने की कोशिश, मैं निम्नलिखित त्रुटि मिलती है:
Error: duplicate files during packaging of APK /[path to project]/build/apk/[project name]-debug-unaligned.apk
Path in archive: AndroidManifest.xml
Origin 1: /[path to project]/build/libs/[apk name]-debug.ap_
Origin 2: /[home directory]/.gradle/caches/artifacts-14/filestore/com.actionbarsherlock/actionbarsherlock/4.2.0/apklib/dd63451a922558005d8c10be1085b488ed731d19/actionbarsherlock-4.2.0.apklib
:packageDebug FAILED
ऐसा लगता है जैसे कि यह दोनों पुस्तकालय परियोजना और अपने प्रोजेक्ट से AndroidManifest.xml शामिल करने के लिए कोशिश कर रहा है। अगर मैं sourceSets
में manifest
विनिर्देश को हटा देता हूं, तो मुझे अभी भी वही त्रुटि मिलती है।
साइट लाइब्रेरी परियोजनाओं के लिए apply plugin: 'android-library'
का उपयोग करने का उल्लेख करती है; मुझे लगता है कि यह केवल तभी होता है जब वास्तविक पुस्तकालय (बहु-परियोजना सेटअप के साथ) का निर्माण करने से ऐसा कोई एपीके नहीं बनता है।
मैं बाहरी एंड्रॉइड लाइब्रेरी प्रोजेक्ट निर्भरताओं को काम करने के लिए कैसे प्राप्त कर सकता हूं?
नई आर प्रारूप एक संकलित वितरण की तरह है जार, या apklib की तरह एक और कच्चे स्रोत ज़िप? – yorkw
प्लगइन के संस्करण 0.3 के साथ, ऐसा लगता है कि एक एंड्रॉइड लाइब्रेरी प्रोजेक्ट बनाने की तरह एक एएआर (संकलित वर्गों और संसाधनों के साथ संग्रह) उत्पन्न करता है। जब तक यह अधिक व्यापक न हो, क्या एंड्रॉइड ग्रैडल प्लगइन को मैवेन सेंट्रल (आदि) पर पाए गए मौजूदा एपीकेलिब पैकेज किए गए पुस्तकालयों के साथ काम करने का कोई तरीका है? संपादित करें: साइट पर वर्तमान संदेश पर विचार करना विशेष रूप से उपयोगी होगा: "पुस्तकालय की बाइनरी पैकेजिंग अभी भी परिवर्तनों के माध्यम से जा रही है। अभी तक मैवेन सेंट्रल (या अन्य समान रिपो) में पुस्तकालय अपलोड न करें।" – antonyt
aar apklib के समान है जिसमें यह एक ज़िप फ़ाइल है जिसमें जार + अन्य फाइलें हैं। सहायक apklib वास्तव में योजनाबद्ध नहीं है, लेकिन मैं इसे देख सकता था। –