2010-04-08 5 views
6

में बाहरी जार संदर्भ जोड़ना मैं इनबिल्ट एंड्रॉइड ऐप में बाहरी थर्ड पार्टी जार फ़ाइल जोड़ना चाहता हूं।एंड्रॉइड.एमके

मैंने एंड्रॉइड.एमके में LOCAL_CLASSPATH चर जोड़ा है जिसके कारण संकलन ठीक हो जाता है। लेकिन रनटाइम के दौरान, यह जेएआर में कक्षा निर्धारण सुनिश्चित करने में सक्षम नहीं है।

कौन सा चर है जिसे मुझे .dex/.apk में तीसरे पक्ष के JAR जोड़ने के लिए सेट करने की आवश्यकता है?

टीआईए।

उत्तर

12

यहाँ मैं समस्या को हल करने के लिए इस्तेमाल होता है।

-2

ग्रहण में पथ बनाने में संशोधन करें और बाहरी जार जोड़ें चुनें, और उस जार का चयन करें जिसे आप शामिल करना चाहते हैं।

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := path_to_jar_file.jar 
include $(BUILD_MULTI_PREBUILT) 

यह Android.mk में जोड़ा जाना चाहिए include $(BUILD_PACKAGE) के बाद

तुम भी संकलन के लिए LOCAL_STATIC_JAVA_LIBRARIES में लाइब्रेरी का नाम निर्दिष्ट करना होगा:

+1

असल में, मैं एंड्रॉइड.एमके में ऐसा करना चाहता हूं। – Karan

+0

अपने एंड्रॉइड प्रोजेक्ट में एक lib निर्देशिका बनाएं और जार जोड़ें –

0

इसे LOCAL_STATIC_JAVA_LIBRARIES & LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES ध्वज के साथ जोड़ें।

और LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES डालें $(BUILD_PACKAGE) & में $(BUILD_MULTI_PREBUILT) शामिल हैं।

यह ठीक रहेगा। प्रदान किए गए यूआरएल a2ronus के लिए धन्यवाद।

15

एक उदाहरण सिर्फ बात करने से कहीं अधिक है।

... 

LOCAL_STATIC_JAVA_LIBRARIES := libmylibs 

LOCAL_PACKAGE_NAME := myapp 

... 

include $(BUILD_PACKAGE) 

################################################## 
include $(CLEAR_VARS) 

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libmylibs:mylib.jar 

include $(BUILD_MULTI_PREBUILT) 

नोट: प्रोजेक्ट रूट पर "mylib.jar" डालें।

+1

बस कुछ नोट्स जोड़ना चाहते हैं: "libmylibs" मूल रूप से एक प्रतीकात्मक नाम है। जब तक आप दो घोषणाओं में एक ही नाम का उपयोग करते हैं, तब तक आप आसानी से "foo" का उपयोग कर सकते हैं। साथ ही, यदि आप चाहें तो आप अपनी जार फ़ाइल के लिए एक पूर्ण पथ का उपयोग कर सकते हैं, उदा। "Libs/mylib.jar"। यह आसान है क्योंकि यह एक विशिष्ट ग्रहण कार्य वातावरण के अनुकूल है। –

+1

आप कृपया समझा सकते हैं LOCAL_PACKAGE_NAME क्या है, क्या इसे यहाँ का उपयोग करना चाहिए, मेरे जार फ़ाइल org.jivesoftwar.smack और org.jivesoftwar.smacks तरह संकुल है। तब मैं एक LOCAL_PACKAGE_NAME रूप org.jivesoftwar इस्तेमाल करना चाहिए? – anargund

+1

हालांकि, इस सवाल का जवाब वास्तव में स्पष्टीकरण की कमी होती है, मुझे लगता है कि इसे स्वीकार कर लिया जवाब की तुलना में बेहतर है। – cwhsu

0
LOCAL_STATIC_JAVA_LIBRARIES := \ 
other libs \ 
your_jar 

include $(CLEAR_VARS) 
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := your_jar:jar_path/jar_file.jar 
include $(BUILD_MULTI_PREBUILT) 
संबंधित मुद्दे

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