2015-10-28 6 views
5

के भीतर अनुकूलित फ्रेमवर्क लाइब्रेरी (android.jar) का उपयोग करें। मेरा अपना कस्टमाइज्ड फ्रेमवर्क (android.jar) था और एंड्रॉइड स्टूडियो के भीतर इसका उपयोग करना चाहता था। मैं तरह मेरे build.gradle में वर्णन था:एंड्रॉइड स्टूडियो

dependencies { 
    compile files('myandroid.jar') 
} 

लेकिन एंड्रॉयड स्टूडियो अभी भी डिफ़ॉल्ट (android.jar) ढांचे का उपयोग करें। अपेक्षित स्थिति ग्रहण की तरह है, मैं पुस्तकालयों के आदेश की व्यवस्था कर सकता हूं। एंड्रॉइड स्टूडियो में, मैं केवल बाहरी पुस्तकालयों के आदेश की व्यवस्था कर सकता हूं और डिफ़ॉल्ट ढांचे पुस्तकालय से कुछ लेना देना नहीं चाहता हूं। क्या मेरे कस्टमाइज्ड android.jar को डिफॉल्ट एक से अधिक ऑर्डर देने का कोई तरीका है?

बहुत बहुत धन्यवाद!

+0

यह समस्या मेरी मॉड्यूल अपने कस्टमाइज़्ड android.jar संदर्भ नहीं दे सकता के बारे में नहीं है। ऐसा लगता है कि मेरी अनुकूलित फ्रेमवर्क लाइब्रेरी और डिफ़ॉल्ट फ्रेमवर्क लाइब्रेरी (एंड्रॉइड एसडीके की लाइब्रेरी) दोनों के समान वर्ग हैं, उदाहरण के लिए: android.telephony.ServiceState। और एंड्रॉइड स्टूडियो सिर्फ डिफ़ॉल्ट फ्रेमवर्क लाइब्रेरी (एंड्रॉइड एसडीके की लाइब्रेरी) का उपयोग करता है जो एंड्रॉइड.टेलेफ़ोनी के लिए मेरे नए जोड़े गए एपीआई। सर्विसस्टेट अपरिचित हो जाता है ... – superx3

+0

क्या आपको जवाब मिल गया? –

+0

नहीं, मुझे अभी भी जवाब नहीं मिला है! हालांकि, आप अपने अनुकूलित एक के साथ डिफ़ॉल्ट android.jar गठबंधन करने का प्रयास कर सकते हैं। दोनों .zjar को अनजिप करें, गायब कक्षाओं को मूल android.jar से कॉपी करें, ज़िप पर वापस ज़िप करें .... आप इस काम को आसान बनाने के लिए एक सरल प्रोग्राम लिख सकते हैं .... – superx3

उत्तर

1

आप अपने को अपने libs फ़ोल्डर में जोड़कर क्या कर सकते हैं, फिर उस पर दायाँ क्लिक करें और add as a library चुनें।

फिर यदि यह पहले से काम नहीं करता है, तो अपने प्रोजेक्ट फ़ोल्डर पर दाएं क्लिक करने का प्रयास करें और Open Modules settings चुनें। आप अपनी निर्भरता और अपने पुस्तकालयों को वहां प्रबंधित कर सकते हैं।

+0

आपकी मदद के लिए बहुत बहुत धन्यवाद! लेकिन एंड्रॉइड स्टूडियो में, मैं अपने एंड्रॉइड.जर को डिफ़ॉल्ट से ज्यादा प्राथमिकता नहीं दे सकता। यहां तक ​​कि मैं "मॉड्यूल सेटिंग्स" विंडो खोलता हूं, डिफ़ॉल्ट android.jar सूची में नहीं है, और मैं अभी भी अपने अनुकूलित एंड्रॉइड की गारंटी नहीं दे सकता .jar पहले संदर्भित किया जाएगा .... – superx3

0

इसे अपने मॉड्यूल की build.gradle फ़ाइल में आज़माएं।

dependencies { 
    compile files('libs/myandroid.jar') 
} 
+0

बहुत बहुत धन्यवाद! लेकिन ऐसा लगता है कि जब तक फ़ाइल पथ सही है तब तक आप अपनी लाइब्रेरी को अन्य फ़ोल्डर में डाल सकते हैं। और यह पुस्तकालयों के संदर्भ आदेश मुझे परेशान कर रहा है ... – superx3

1

प्लेस अपने निर्भरता के अंदर इस लाइन:

provided files('libs/myandroid.jar') 

तो अभी भी काम नहीं, इसलिए हम अपने पुस्तकालय classpath निर्माण करने के लिए जोड़ सकते हैं। एप्लिकेशन के build.gradle में, इन्हें जोड़ें:

allprojects { 
    repositories { 
     jcenter() 
    } 
    gradle.projectsEvaluated { 
     tasks.withType(JavaCompile) { 
      options.compilerArgs.add('-Xbootclasspath/p:app\\libs\\mylibs.jar') 
     } 
    } 
} 

मैंने mylib.jar को ऐप/libs में रखा है। आईडीई पर कुछ त्रुटियां प्रदर्शित हो सकती हैं, लेकिन एप्लिकेशन का निर्माण ठीक रहेगा।

+0

बहुत बहुत धन्यवाद! लेकिन ऐसा लगता है कि जब तक फ़ाइल पथ सही है तब तक आप अपनी लाइब्रेरी को अन्य फ़ोल्डर में डाल सकते हैं। और यह पुस्तकालयों का संदर्भ ऑर्डर मुझे परेशान कर रहा है ... मैं चाहता हूं कि मेरी अनुकूलित कक्षाएं उस व्यक्ति को प्रतिस्थापित करें जो एंड्रॉइड फ्रेमवर्क पहले से मौजूद है। उस मामले में मुझे अपने अनुकूलित ढांचे को सुनिश्चित करना होगा।जार उच्च संदर्भ प्राथमिकता थी! – superx3

+0

मैंने अपना जवाब अपडेट कर दिया है। – anhtuannd

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