El SDK del centro de notificaciones de Android Azure no funciona en Android Pie.

A continuación se muestran los detalles del SDK:

URL de mavel: "http://dl.bintray.com/microsoftazuremobile/SDK"

dependencias:

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

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

Pasos para reproducir:

  1. Recibe el token GCM / FCM

  2. Crear instancia de NotificationHub

  3. Llame al método "registerTemplate" utilizando la instancia de NotificationHub junto con los parámetros requeridos.

Error:

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
Prashanth 9 sep. 2018 a las 20:50

3 respuestas

La mejor respuesta

Actualmente en Android Pie, la referencia para httpclient se ha eliminado completamente del sistema ClassLoader. El problema anterior se puede solucionar si agregamos el httpclient como parte de la aplicación ClassLoader. Yo he añadido

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

Dentro de la etiqueta de aplicación del archivo de manifiesto, está funcionando ahora. Para obtener más información, consulte el siguiente enlace: https://developer.android.com/ acerca de / versiones / pie / android-9.0-changes-28 # apache-p

2
Prashanth 12 sep. 2018 a las 07:46

Esto se ha solucionado en la versión 0.5 del SDK de Android de Azure Notification Hub.

Actualice su dependencia de Azure a:

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

Esta versión usa HttpUrlConnection en lugar del legado HttpClient. Consulte la solicitud de extracción: https://github.com/Azure/azure-notificationhubs/pull/ 48

1
Andrew Marshall 12 nov. 2018 a las 16:32

Actualice su Biblioteca de soporte de Android a la última versión solucionará el problema. Junto con eso, una limpieza y reconstrucción del proyecto y un reinicio de Android Studio también podrían ayudar.

2
Anubhav Gupta 9 sep. 2018 a las 17:59