2010-08-26 15 views
5

क्या किसी ने एंड्रॉइड पर अपाचे एचटीपी क्लाइंट का एक नया संस्करण उपयोग करने का प्रयास किया है? एंड्रॉइड द्वारा उपयोग किए गए एचटीपी क्लाइंट में एक कष्टप्रद बग है और मैं सोच रहा था कि क्या मैं अपने ऐप के साथ HttpClient 4.1 को पुनर्वितरण करने की कोशिश कर रहा हूं।एंड्रॉइड पर अपाचे एचटीपी क्लाइंट 4.1

उत्तर

2

यह अच्छा विचार नहीं दिखता है, खासकर यदि क्लाइंट के नए संस्करण में पैकेज और क्लास नाम नहीं बदला गया था। सबसे अधिक संभावना है कि आप भविष्यवाणी करने में सक्षम नहीं होंगे कि कौन सी कक्षा का उपयोग किया जाता है (पुराना या नया)।

+0

यदि आप मेवेन छाया प्लगइन का उपयोग करते हैं तो आप इसे सभी को एक अलग पैकेज में ले जा सकते हैं और इसका उपयोग करके सहेज सकते हैं। –

2

बस अगर कोई दिलचस्पी लेता है - मैंने अपाचे एचटीपी क्लाइंट 4.01 के साथ अपने ऐप का पुनर्निर्माण किया और सब ठीक काम करने लगता है। ऐप केवल 100kb तक बढ़ गया है।

+0

क्या आप हमें कुछ चरण-दर-चरण निर्देश दे सकते हैं कि अंतर्निहित संस्करण के बजाय HTTPClient 4.x के विरुद्ध कैसे निर्माण करें? – Ognyan

+0

खान 250kb (अपाचे एचटीपी क्लाइंट 4.2.1) से बढ़ गया है, जुलाई 2012 से httpclientandroidlib का नवीनतम संस्करण – Twilite

+0

Ogre_BGR: क्या आपको कोई समाधान मिला? मैं HttpClient 4.3.1 के उपयोग के लिए अपने आप को पुनः लोड करने की कोशिश कर रहा हूं: http://stackoverflow.com/questions/21134237/how-to-repackage-httpclient-4-3-1-and-remove- निर्भरता-on- कॉमन्स-लॉगिंग – Stuck

0

मैं तब तक ठीक चल रहा था जब तक कि मैंने थ्रेडसेफ क्लाइंट कॉनमैनगर और स्कीम का उपयोग करना शुरू किया जो कुछ खराब रनटाइम त्रुटियों का उत्पादन करता था।

ERROR/dalvikvm(1077): Could not find method org.apache.http.conn.scheme.Scheme.<init>, referenced from method com.example.MyActivity.download 
WARN/dalvikvm(1077): VFY: unable to resolve direct method 3290: Lorg/apache/http/conn/scheme/Scheme;.<init> (Ljava/lang/String;ILorg/apache/http/conn/scheme/SchemeSocketFactory;)V 
WARN/dalvikvm(1077): VFY: rejecting opcode 0x70 at 0x0035 

मुझे संदेह है कि एंड्रॉइड एपीआई में पुरानी योजना का उपयोग किया जाता है जिसमें एक अलग कन्स्ट्रक्टर होता है।

6

मैंने एक एंड्रॉइड लाइब्रेरी प्रोजेक्ट में एक स्टॉक HttpClient रिलीज को कनवर्ट करने के लिए एक स्क्रिप्ट बनाई है। पैकेज का नाम बदल दिया गया है ताकि इस बात का कोई भ्रम न हो कि किन वर्गों का उपयोग किया जाता है।

भी थ्रेडसेफ क्लाइंट कॉनमैनगर और योजना ठीक काम करती है।

एक नज़र डालें: httpclientandroidlib

+0

आपको बहुत धन्यवाद !! – dan

+0

dirkboye: इसे अपने आप कैसे पुनर्स्थापित करने के लिए? http://stackoverflow.com/questions/21134237/how-to-repackage-httpclient-4-3-1-and-remove- निर्भरता-on-commons-logging या आप एचटीपी क्लाइंट 4.3.1 का उपयोग करने के लिए lib को अपडेट कर सकते हैं? – Stuck

1

आप maven repository में पा सकते हैं Apache httpclient के official एंड्रॉयड बंदरगाह नहीं है (या के लिए देखो "httpclient-एंड्रॉयड")।

दुख की बात है कि एंड्रॉइड एपैच का एक कांटा के साथ आता है एचटीपी क्लाइंट निर्मित और यह संस्करण 4.0 में फंस गया है।

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