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'
复制步骤:
接收GCM / FCM令牌
创建NotificationHub实例
错误:
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)
答案 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