मेरा एंड्रॉइड एप्लिकेशन क्लाइंट यूआई परत और एपीआई परत में विभाजित किया जा सकता है। मैं उन्हें अलग-अलग "एप्लिकेशन" के रूप में तैनात करना चाहता हूं ताकि एपीआई परत का पुन: उपयोग किया जा सके।एंड्रॉइड: "उपयोग-पुस्तकालय" का उपयोग कैसे करें?
ग्रहण में, मैं उन्हें 2 अलग एंड्रॉइड परियोजनाओं के रूप में लिखता हूं। क्लाइंट यूआई प्रोजेक्ट में, मैं एपीआई प्रोजेक्ट को अपने बिल्ड पथ (प्रोजेक्ट -> प्रोपरीज -> जावा बिल्ड पाथ -> प्रोजेक्ट्स) में घोषित करता हूं।
ग्रहण (मेरे वास्तविक जी 1 फोन पर) के माध्यम से क्लाइंट UI प्रोजेक्ट को तैनात करते समय, यह स्वचालित रूप से एपीआई प्रोजेक्ट (एपीके में पैक किया गया) को भी तैनात करता है।
हालांकि, जब ग्राहक यूआई ऐप्लिकेशन को लॉन्च करने, मैं इस त्रुटि को मारा:
Uncaught handler: thread main exiting due to uncaught exception
java.lang.VerifyError: myapp.android.testuiclient.Main
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1472)
at android.app.Instrumentation.newActivity(Instrumentation.java:1097)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2316)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
at android.app.ActivityThread.access$2100(ActivityThread.java:116)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4203)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
at dalvik.system.NativeStart.main(Native Method)
चारों ओर देख रहे हैं, यह लगता है मैं यूआई ग्राहक के लिए मैनिफ़ेस्ट फ़ाइल में आवेदन के तहत उपयोग करता है-पुस्तकालय की घोषणा करनी चाहिए।
प्रश्न है, मुझे एंड्रॉइड के तहत क्या रखा जाना चाहिए: उपयोग-पुस्तकालय के लिए नाम? देव गाइड कहते हैं "पुस्तकालय का नाम" लेकिन पुस्तकालय का नाम क्या है? (मेरा मतलब है, मेरे एपीआई "एप्लिकेशन" में, मैंने कहीं भी लाइब्रेरी का नाम घोषित नहीं किया है।)
धन्यवाद! इसके रूप में, विकल्प 1 सबसे अधिक लागू है। मैं संदर्भ के लिए अपनी परियोजनाओं पर एक नज़र डालेगा। –
हाय कॉमन्सवेयर, मैंने आपके सीडब्ल्यूएसी-कैश प्रोजेक्ट को देखा है। 1. मैं देख सकता हूं कि आप जेएआर बनाने और इकट्ठा करने के लिए चींटी build.xml का उपयोग करते हैं। उस जेएआर का उपयोग करने के लिए एक और प्रोजेक्ट के लिए, आप इसे ग्रहण में कैसे सेट करते हैं ताकि (ए) कोडिंग/संकलन समय पर निर्भरता हल हो जाए, और (बी), समय पर तैनात करने पर, वे एक एकल एपीके में तैनात हो जाते हैं और तैनात किए जाते हैं ? 2. मुझे लगता है कि सीडब्ल्यूएसी-कैश स्टैंडअलोन चलाने के लिए नहीं है (क्या मैं सही हूँ?)। उस स्थिति में, आपको अभी भी एक Android कार्रवाई और एक लांचर श्रेणी के साथ AndroidManifest.xml में एक गतिविधि को कॉन्फ़िगर करने की आवश्यकता क्यों है? क्या यह आवश्यक है? –
सरल: मैं ग्रहण का उपयोग नहीं करता हूं। :-) सीडब्ल्यूएसी-कैश में एक नमूना डेमो गतिविधि है (यदि आप एपीके संकलित करते हैं), लेकिन इसकी प्राथमिक भूमिका 'चींटी जार' लक्ष्य है जो केवल वास्तविक कैशिंग कोड के जेएआर को बनाने के लिए है जो अन्य परियोजनाओं का उपयोग कर सकती है। 'चींटी जार' कार्य डेमो कोड को छोड़ देता है ('डीमो' उप-पैकेज में अलग)। – CommonsWare