Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
EWS Java API-EmailMessage.send to Java.lang.NullPointerException:format==null_Java_Android Studio_Ms Office_Exchangewebservices_Ewsjavaapi - Fatal编程技术网

EWS Java API-EmailMessage.send to Java.lang.NullPointerException:format==null

EWS Java API-EmailMessage.send to Java.lang.NullPointerException:format==null,java,android-studio,ms-office,exchangewebservices,ewsjavaapi,Java,Android Studio,Ms Office,Exchangewebservices,Ewsjavaapi,我想为我的android应用程序使用EWS Java API。 应用程序需要登录才能以编程方式访问microsoft exchange server(例如日历会议、电子邮件、会议室等) 在这一点上,几乎整个问题都被编辑了,以防万一,以显示目前的情况 我尝试通过url(“https://yourserver/EWS/exchange.asmx”)连接到exchange版本15.0.11 生成渐变文件: android { compileSdkVersion 23 buildToolsVersion

我想为我的android应用程序使用EWS Java API。 应用程序需要登录才能以编程方式访问microsoft exchange server(例如日历会议、电子邮件、会议室等)

在这一点上,几乎整个问题都被编辑了,以防万一,以显示目前的情况

我尝试通过url(“https://yourserver/EWS/exchange.asmx”)连接到exchange版本15.0.11

生成渐变文件:

android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
useLibrary 'org.apache.http.legacy'

defaultConfig {        
    minSdkVersion 18
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}

packagingOptions {        
    exclude 'META-INF/DEPENDENCIES.txt'
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/dependencies.txt'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/LGPL2.1'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/notice.txt'
} [...] }

dependencies {
     compile fileTree(include: ['*.jar'], dir: 'libs')
     testCompile 'junit:junit:4.12'
     compile 'com.android.support:appcompat-v7:23.2.1'
     compile 'com.android.support:design:23.3.0'
     compile 'com.google.android.gms:play-services:6.5.87'
     compile 'org.altbeacon:android-beacon-library:2.7.1'
     compile 'org.greenrobot:eventbus:3.0.0'
     compile files('libs/jcifs-1.3.15.jar')
     compile files('libs/commons-logging-1.1.1.jar')
     compile files('libs/commons-codec-1.4.jar')
     compile files('libs/commons-httpclient-3.1.jar')
     compile 'com.microsoft.ews-java-api:ews-java-api:2.0' }
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
useLibrary 'org.apache.http.legacy'      // <---------------------

defaultConfig {
    applicationId "your application id"
    minSdkVersion 18
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}

packagingOptions {
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/DEPENDENCIES.txt'
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/dependencies.txt'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/LGPL2.1'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/notice.txt'
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:design:23.3.0
compile files('libs/ews-android-api.jar')    // <---------------------
compile 'joda-time:joda-time:2.8'}           // <---------------------
这将导致出现此错误消息

 java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/client/protocol/HttpClientContext;
行:

此时,我测试了ews文库“github.com/faisons/ews For Android”

这几乎奏效了。我能够启动应用程序并设置ExchangeService

 Thread thread = new Thread(new Runnable()
    {
        @Override
        public void run()
        {
            try
            {
               ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
               ExchangeCredentials credentials = new WebCredentials(myuser, mypw);
               service.setCredentials(credentials);
               service.setUrl(new URI("https://exchmail.yourserver.com/EWS/Exchange.asmx"));
               EmailMessage message = new EmailMessage(service);
               EmailAddress from = new EmailAddress(myemail);
               message.setSender(from);                  
               message.getToRecipients().add(anotherEmail);
               message.setSubject("Much wow - such message");
               MessageBody messageBody = new MessageBody();
               messageBody.setText("text here");
               message.setBody(messageBody);
               message.send();

            } 
            catch (Exception e)
            {
                Log.e(TAG, "message", e);
            }
        }
    });

    thread.start();
现在的错误是:

java.lang.NullPointerException: format == null
    at java.lang.String.format(String.java:1799)
at java.lang.String.format(String.java:1777)
    at java.lang.String.format(String.java:1799)
    at microsoft.exchange.webservices.data.ServiceRequestBase.getEwsHttpWebResponse(ServiceRequestBase.java:936)
at microsoft.exchange.webservices.data.ServiceRequestBase.validateAndEmitRequest(ServiceRequestBase.java:821)
at microsoft.exchange.webservices.data.SimpleServiceRequestBase.internalExecute(SimpleServiceRequestBase.java:46)
at microsoft.exchange.webservices.data.MultiResponseServiceRequest.execute(MultiResponseServiceRequest.java:143)
at microsoft.exchange.webservices.data.ExchangeService.internalCreateItems(ExchangeService.java:463)
at microsoft.exchange.webservices.data.ExchangeService.createItem(ExchangeService.java:534)
at microsoft.exchange.webservices.data.Item.internalCreate(Item.java:215)
at microsoft.exchange.webservices.data.EmailMessage.internalSend(EmailMessage.java:125)

我不知道如何让api工作。如果有人知道另一种访问方式,欢迎提供任何提示

您是否将apache遗留行添加到gradle版本中

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
    useLibrary 'org.apache.http.legacy'
    ...
}

有关更多信息,请参见此链接:

您是否将apache遗留行添加到gradle版本中

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
    useLibrary 'org.apache.http.legacy'
    ...
}

有关更多信息,请参见此链接:

问候语!我有个好消息,它起作用了!我不确定这是否是一个完美的方式,但我可以发送电子邮件

首先,确保您拥有manifes文件中声明的权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
您可以使用EWS编辑器检查您的凭据。 向魔鬼眼和阿利波夫大声喊叫

如果有什么不清楚的地方,请随时询问

亲切的问候

编辑:
它似乎在处理几乎所有的事情。您并不特别需要Office 365。例如,我还可以调用“service.getRoomLists();”。

问候语!我有个好消息,它起作用了!我不确定这是否是一个完美的方式,但我可以发送电子邮件

首先,确保您拥有manifes文件中声明的权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
您可以使用EWS编辑器检查您的凭据。 向魔鬼眼和阿利波夫大声喊叫

如果有什么不清楚的地方,请随时询问

亲切的问候

编辑:
它似乎在处理几乎所有的事情。您并不特别需要Office 365。例如,我也可以调用“service.getRoomLists();”。

感谢您的快速回复!我添加了这个并得到了警告:警告:找不到可选库:org.apache.http.legacy当我尝试运行应用程序时,我得到了这个警告:依赖项公用记录:公用记录:1.2在调试时被忽略,因为它可能与Android提供的内部版本冲突。如果出现问题,请使用jarjar重新打包以更改类包错误:配置项目时出现问题“:app'>找不到可选库:org.apache.http.legacy我认为您应该删除依赖项
编译文件('libs/org.apache.http.legacy.jar')
,因为旧版将由SDK导入。至于你的错误,你应该看看那篇文章:看来你的SDK安装没有包括选项。重新安装可能会解决问题。嘿,贝诺特。我重新安装了它,并将compileSdkVersion和buildTools设置为23。没有错误了,我可以启动应用程序了。让我开心一天谢谢@卢戈听到这个消息很高兴!别忘了把问题标为已回答;)谢谢你的快速回答,贝诺特!我添加了这个并得到了警告:警告:找不到可选库:org.apache.http.legacy当我尝试运行应用程序时,我得到了这个警告:依赖项公用记录:公用记录:1.2在调试时被忽略,因为它可能与Android提供的内部版本冲突。如果出现问题,请使用jarjar重新打包以更改类包错误:配置项目时出现问题“:app'>找不到可选库:org.apache.http.legacy我认为您应该删除依赖项
编译文件('libs/org.apache.http.legacy.jar')
,因为旧版将由SDK导入。至于你的错误,你应该看看那篇文章:看来你的SDK安装没有包括选项。重新安装可能会解决问题。嘿,贝诺特。我重新安装了它,并将compileSdkVersion和buildTools设置为23。没有错误了,我可以启动应用程序了。让我开心一天谢谢@卢戈听到这个消息很高兴!别忘了把问题标为已回答;)当我调用AutodiscoverService.getUserSettings时,我得到“java.lang.NoClassDefFoundError:解析失败:Ljava/applet/applet”。这已记录在。你是怎么做到的?当我调用AutodiscoverService.getUserSettings时,我得到了“java.lang.NoClassDefFoundError:解析失败:Ljava/applet/applet”。这已记录在。你是怎么做到的?
                ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
                ExchangeCredentials credentials = new WebCredentials("user", "pw");
                service.setCredentials(credentials);
                service.setUrl(new URI("https:// s e r v e r /ews/exchange.asmx"));                    
                EmailAddress mEmail = new EmailAddress("your email / test email");

                EmailMessage message = new EmailMessage(service);
                message.getToRecipients().add(mEmail);
                message.setFrom(mEmail);
                message.setSubject("Hello world!");
                message.setBody(MessageBody.getMessageBodyFromText("Sent using the EWS Android API."));
                message.send();