Android Azure通知中心SDK在Android Pie中不起作用

时间:2018-09-09 17:50:08

标签: android azure azure-notificationhub

Android Azure通知中心SDK在Android Pie中不起作用。

以下是SDK详细信息:

mavel网址:“ http://dl.bintray.com/microsoftazuremobile/SDK

依赖项:

compile 'com.microsoft.azure:notification-hubs-android-sdk:0.4@aar'

compile 'com.microsoft.azure:azure-notifications-handler:1.0.1@aar'

复制步骤:

  1. 接收GCM / FCM令牌

  2. 创建NotificationHub实例

  3. 使用NotificationHub实例以及所需的参数来调用方法“ registerTemplate”。

错误:

Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/net/http/AndroidHttpClient;
        at com.microsoft.windowsazure.messaging.Connection.executeRequest(Connection.java:217)
        at com.microsoft.windowsazure.messaging.Connection.executeRequest(Connection.java:178)
        at com.microsoft.windowsazure.messaging.Connection.executeRequest(Connection.java:134)
        at com.microsoft.windowsazure.messaging.NotificationHub.refreshRegistrationInformation(NotificationHub.java:296)
        at com.microsoft.windowsazure.messaging.NotificationHub.registerInternal(NotificationHub.java:390)
        at com.microsoft.windowsazure.messaging.NotificationHub.registerTemplate(NotificationHub.java:196)

3 个答案:

答案 0 :(得分:2)

将您的Android Support Library更新到最新版本将解决此问题。除此之外,清理和重建项目以及重新启动Android Studio也可能会有所帮助。

答案 1 :(得分:2)

当前在Android Pie中,httpclient的引用已从系统ClassLoader中完全删除。如果我们将httpclient添加为应用程序ClassLoader的一部分,则可以解决上述问题。我已添加

<uses-library android:name="org.apache.http.legacy" android:required="false" /> 

在清单文件的应用程序标记内,它现在可以工作。 有关更多信息,请参见以下链接: https://developer.android.com/about/versions/pie/android-9.0-changes-28#apache-p

答案 2 :(得分:1)

此问题已在Azure Notification Hub Android SDK 0.5版本中修复。

将您的Azure依赖项更新为:

implementation 'com.microsoft.azure:notification-hubs-android-sdk:0.5@aar'

此版本使用HttpUrlConnection而不是旧版HttpClient。请参阅拉取请求:https://github.com/Azure/azure-notificationhubs/pull/48