0

我正在尝试使用 EWS Java API for android app 连接到 Exchange Server 2010,但在使用 EWS API 时出现错误:

例外:

找不到方法 javax.xml.stream.XMLOutputFactory.newInstance,引用自方法 microsoft.exchange.webservices.data.EwsUtilities.formatLogMessage

VFY: 无法解析静态方法 6011: Ljavax/xml/stream/XMLOutputFactory;.newInstance ()Ljavax/xml/stream/XMLOutputFactory; 找不到方法 javax.xml.stream.XMLStreamWriter.writeStartElement,引用自方法 microsoft.exchange.webservices.data.EwsUtilities.writeTraceStartElement

错误:

致命例外:主要的 12-26 14:20:10.384:
java.lang.VerifyError: microsoft/exchange/webservices/data/EwsServiceXmlWriter at microsoft.exchange.webservices.data.ServiceRequestBase.emit(Unknown Source) at microsoft.exchange.webservices .data.MultiResponseServiceRequest.execute(未知来源)

我发送邮件的源代码是:

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

try {
    uri = new URI("https://host name/ews/Exchange.asmx");
} catch (URISyntaxException e) {
    e.printStackTrace();
}

service.setUrl(uri);

try {
    EmailMessage msg= new EmailMessage(service);
    msg.setSubject("Heloo World ");
    msg.setBody(MessageBody.getMessageBodyFromText("Send using ews api in android "));
    msg.getToRecipients().add("email address");
    msg.send();
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

提前致谢。

4

2 回答 2

0

EWSAndroid 打包了比API使用的库更轻(且更旧)的 javax 库。缺少一些方法。

javax.xml.stream.XMLOutputFactory.newInstance方法在 Android 上不可用。

您应该在应用程序中包含更新版本的javax库。但是可能会出现一些冲突..

我对来自 apache 的 commons-codec 库有同样的问题。

在这里查看我是如何解决问题的:如何解决库冲突(apache commons-codec)

于 2013-12-26T08:47:32.257 回答
-1

您可以使用 EWSJ,即 EWS Java SDK 的 Android 端口:https: //play.google.com/store/apps/details? id=com.netcompss.android_ewsj

于 2014-02-22T11:58:53.327 回答