2015-07-31 4 views
5

मैंने एंड्रॉइड लाइब्रेरी (एक एपीआई क्लाइंट) पर काम किया है जो रेट्रोफिट और जोडा डेटटाइम का उपयोग करता है।स्थानीय एएआर फ़ाइल निर्भरताओं का प्रबंधन नहीं करती

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.2.0' 
    compile 'com.squareup.retrofit:retrofit:1.9.0' 
    compile 'joda-time:joda-time:2.8.1' 
} 
अब जब कि पुस्तकालय पूरा हो गया है मैं इसे एक आर फ़ाइल में संकलित किया है और मैं एक आवेदन पत्र में इसका उपयोग करना चाहते, तो मैं यह आवेदन की libs फ़ोल्डर में जोड़ा और build.gradle फ़ाइल में शामिल

जैसे इतना:

dependencies { 
    compile(name:'s3papiandroidclient', ext:'aar') 
    //Some other things 
} 

हालांकि, जब मैं पुस्तकालय से API ग्राहक को प्रारंभ करने का प्रयास करें, अनुप्रयोग क्रैश हो जाता है जब यह पुराना वापस या datetime से मैप (उदाहरण के लिए, retrofit.RestAdapter) से वस्तुओं बुला लिए आता है। ऐसा लगता है जैसे ग्रैडल एएआर लाइब्रेरी से निर्भरता नहीं पढ़ता है, इस प्रकार मेरे एप्लिकेशन में रेट्रोफिट और डेटटाइम इंस्टॉल नहीं करता है। मैंने अपनी एएआर फ़ाइल पर transitive=true पैरामीटर का उपयोग करने की कोशिश की, मदद नहीं करता है।

अन्य बिंदु जो मदद कर सकता है, मैंने एक पीओएम फ़ाइल उत्पन्न करने की कोशिश की, और निर्भरताएं इसमें दिखाई नहीं देती हैं। ऐसा लगता है कि वास्तव में इनके साथ कुछ चल रहा है और मैं उस पर पूरी तरह से अटक गया हूं।

एकमात्र कामकाज मैं मैन्युअल रूप से एएआर फ़ाइल से ऐप की बिल्ड.ग्रैडल फ़ाइल में निर्भरता जोड़ना चाहता हूं लेकिन यह समझ में नहीं आता है, मुझे लगता है कि ग्रैडल निर्भरता आयात कर सकता है!

सम्मान,

Gyoo।

उत्तर

5

यह Gradle की तरह लग रहा आर पुस्तकालय

है ऐसा इसलिए है क्योंकि वहाँ एक आर फ़ाइल में कोई निर्भरता से निर्भरता नहीं पढ़ता।

मैं एक पोम फाइल उत्पन्न करने की कोशिश की, और निर्भरता यह में दिखाई नहीं देते या तो

तो फिर वहाँ कैसे आप पोम फ़ाइल पैदा कर रहे हैं में एक समस्या है। इसके अलावा, AFAIK, आपको पीएएम को पहचानने और इसके अंदर निर्भरता जानकारी का उपयोग करने के लिए एएआर और इसकी पीओएम फाइल को एक भंडार में रखना होगा।

+1

@Gyoo: FWIW, [यहां मेरे पुस्तकालयों में से एक है] (https://github.com/commonsguy/cwac- प्रतिनिधित्व) जिस पर [मेरे पुस्तकालयों में से एक] पर निर्भरता है (http: // github। com/commonsguy/cwac-लेआउट)। मैं पीओएम उत्पन्न करने के लिए 'maven' प्लगइन और उसके' अपलोड आर्चिव्स 'कार्य का उपयोग करता हूं और इसे एएआर को एक स्थानीय भंडार में कॉपी करता हूं (जिसे मैं अमेज़ॅन एस 3 पर अपने सार्वजनिक आर्टिफैक्ट रिपोजिटरी में सिंक करता हूं)। – CommonsWare

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

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