Проблемы с использованием EWS Java API на Android

Я пытаюсь использовать EWS Java API v1.1.5 (http://archive.msdn.microsoft.com/ewsjavaapi) в приложении для Android и столкнулся с рядом проблем. Я загрузил исходный код и следовал инструкциям по компиляции EWS Java API в Eclipse. В этих инструкциях вам предлагается загрузить и добавить следующие зависимости jar-файла:

Обще-кодек-1.4.jarОбще-HttpClient-3.1.jarОбще-каротаж 1.1.1.jarJCIFS-1.3.15.jar

Я сделал это и следовал инструкциям по сборке, создав следующие файлы jar:

EWSAPI-1.1.0.jarEWSAPIWithJars-1.1.0

Затем я создал новое приложение для Android, добавил соответствующие разрешения в манифест, а затем добавил следующий источник в OnCreate основного действия:

ExchangeService service = new ExchangeService();
ExchangeCredentials credentials = new WebCredentials("emailaddress", "password");       
service.setCredentials(credentials);

try
{
    service.autodiscoverUrl("emailaddress", this);
}
catch (Exception e)
{       
    e.printStackTrace();
}

Сначала я попытался запустить это приложение с файлом EWSAPI-1.1.0.jar в качестве зависимости. Когда я сделал это, я получил следующую фатальную ошибку:

Необработанный обработчик: основной выход потока из-за неперехваченного исключения java.lang.NoClassDefFoundError: org.apache.commons.httpclient.MultiThreadedHttpConnectionManager на microsoft.exchange.webservices.data.ExchangeServiceBase. (Unknown Source). . (Неизвестный источник) в microsoft.exchange.webservices.data.ExchangeService. (Неизвестный источник) в com.meshin.exchange.ExchangeDiscoveryActivity.onCreate (ExchangeDiscoveryActivity.java:40)

Из того, что я исследовал, похоже, что эта ошибка генерируется, потому что Android поставляется с Apache HttpClient 4.0, который, по-видимому, больше не имеет класса MultiThreadedHttpConnectionManager.

Если я вместо этого удаляю EWSAPI-1.1.0.jar и вместо этого использую файл EWSAPIWithJARS-1.1.0.jar в качестве зависимости, я получаю следующую ошибку:

VFY: невозможно разрешить статический метод 908: Ljavax / xml / stream / XMLOutputFactory; newInstance () Ljavax / XML / поток / XMLOutputFactory; VFY: мертвый код 0x0008-006a в L microsoft / exchange / webservices / data / EwsUtilities; .formatLogMessage (Ljava / lang / String; Ljava / lang / String;) Ljava / lang / String; VFY: невозможно найти класс, на который есть ссылка в подписи (Ljavax / xml / stream / XMLStreamWriter;)

А потом в конце концов ...

Неустранимое исключение: main java.lang.VerifyError: microsoft.exchange.webservices.data.AutodiscoverService в microsoft.exchange.webservices.data.ExchangeService.getAutodiscoverUrl (Неизвестный источник) в microsoft.exchange.webservices.knownerau ) в com.meshin.exchange.ExchangeDiscoveryActivity.onCreate (ExchangeDiscoveryActivity.java:41)

Я предполагаю, потому что теперь я включаю банку HttpClient 3.1, и это противоречит банке HttpClient 4.0, включенной в библиотеки Android.

У меня вопрос: есть ли способ использовать API Java EWS в проекте Android без необходимости переписывать его части, которые ссылаются на специфичные для HttpClient 3.1 вещи, которых больше нет в 4.0.

Ответы на вопрос(3)

Ваш ответ на вопрос