2010-08-26 3 views
5

Кто-нибудь пытался использовать более новую версию Apache HttpClient на Android? В HttpClient, используемом Android, есть раздражающая ошибка, и мне было интересно, не возникли ли у меня проблемы с попыткой перераспределить HttpClient 4.1 с моим приложением.Apache HttpClient 4.1 на Android

ответ

2

Это не выглядит хорошей идеей, особенно если имена пакетов и классов не были изменены в новой версии клиента. Скорее всего, вы не сможете предсказать, какой класс используется (старый или новый).

+0

Если вы используете плагин Maven Shade, вы можете просто переместить все его в другой пакет и сохранить его. –

2

На всякий случай кто-либо заинтересован - я перестроил свое приложение с Apache HttpClient 4.01, и все, кажется, работает нормально. Приложение выросло всего на 100 КБ.

+0

Можете ли вы дать нам пошаговую инструкцию по построению против HTTPClient 4.x вместо встроенной версии? – Ognyan

+0

Шахта выросла на 250 КБ (Apache HttpClient 4.2.1), последняя версия httpclientandroidlib с июля 2012 года – Twilite

+0

Ogre_BGR: вы нашли какое-либо решение? Я пытаюсь переупаковать самостоятельно для использования HttpClient 4.3.1: http://stackoverflow.com/questions/21134237/how-to-repackage-httpclient-4-3-1-and-remove-dependencies-on- commons-logging – Stuck

0

Я работал под управлением 4.1 всего лишь до тех пор, пока не начал использовать ThreadSafeClientConnManager и Scheme, которые вызвали некоторые неприятные ошибки времени выполнения.

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 

Я подозреваю, что используется более старая схема в Android API, которая имеет другой конструктор.

6

Я создал сценарий для конвертирования выпуска HttpClient в проект библиотеки Android. Пакеты переименованы так, чтобы не было путаницы, какие классы используются.

Также ThreadSafeClientConnManager и схема работают нормально.

Посмотрите: httpclientandroidlib

+0

спасибо! – dan

+0

dirkboye: как переупаковать его самостоятельно? http://stackoverflow.com/questions/21134237/how-to-repackage-httpclient-4-3-1-and-remove-dependencies-on-commons-logging Или вы можете обновить lib для использования HttpClient 4.3.1? – Stuck

1

Там в official андроид порт апача HttpClient вы можете найти в maven repository (или искать «HttpClient-андроид»).

Печально Android поставляется с вилкой Apache HttpClient, встроенной и застрявшей в версии 4.0.

Смежные вопросы