web-dev-qa-db-fra.com

Étapes à suivre pour que SignalR fonctionne dans Android Studio

J'essaie d'intégrer SignalR à mon projet Android Studio.

J'ai suivi avec succès le didacticiel sur comment démarrer avec SignalR , alors je dispose maintenant d'une variable Hub. Le client de ce didacticiel est JavaScript, et je le fais bien dans une page Web (sous Chrome) sur PC ET sur mon téléphone Android via WiFi sur mon réseau local.

Ensuite, je suis allé faire fonctionner le client Android Java. J'avais déjà un projet d'application Android dans Android Studio, que je souhaite faire parler à cette Hub fonctionnelle en guise de test, à l'étape suivante.

J'ai téléchargé le logiciel officiel Microsoft client Java pour Android , sous forme de fichier Zip.

Ensuite, je l'ai extrait et chargé en tant que projet dans Android Studio. Il construit sans erreurs.

Problème n ° 1: Ce projet ne me donne qu'un AAR, pas un JAR J'ai compris comment utiliser un bocal dans Android Studio. Par conséquent, s'il existe un moyen de créer un bocal à ce stade, je peux probablement y arriver.

À ce stade, j'ai inclus les dépendances dans mon projet d'application. Le readme.md dit à:

Ajoutez le gson signalr-client-sdk.jar, signalr-client-sdk-Android.jar bibliothèque en tant que dépendance du projet.

j'ai donc essayé de suivre cela aussi étroitement que possible. Voici mon build.gradle:

compile 'com.google.code.gson:gson:2.3.1'
compile files('libs/signalr-client-sdk.jar')
compile files('libs/signalr-client-sdk-Android-release.aar')

Problème n ° 2: Après avoir importé l'aar en tant que module dans mon projet d'application dans Android Studio, il ne voit toujours pas l'espace de noms nécessaire pour que l'instruction principale fonctionne. Voici la déclaration principale (le monde de salut de SignalR sous Android, en termes de compilation):

Platform.loadPlatformComponent(new AndroidPlatformComponent());

Au début, il ne récupérait rien, puis il a récupéré import Microsoft.aspnet.signalr.client.Platform; pour Platform. Il n'a toujours pas la moindre idée de ce que import pour AndroidPlatformComponent, alors je suis coincé jusqu'à ce que je puisse passer au-delà.

Comme vous le savez, Android Studio contient un grand nombre de fichiers, et je ne veux pas les diffuser tous ici avant de savoir quels fichiers vous souhaitez voir. Je les ajouterai comme édition si vous me dites quels fichiers vous voulez voir.

22
toddmo

Eh bien, vous pouvez télécharger les fichiers jar à partir de ce link

Étape 1

Créez un dossier libs dans votre paquet et collez simplement ces fichiers jar ici.

enter image description here

Étape 2

Maintenant, ajoutez "compiler des fichiers" dans les dépendances de build.gradle

enter image description here

Maintenant, après cette presse "Synchroniser le projet avec le fichier Gradle" enter image description here

Étape 3

Même après avoir synchronisé et importé jar avec succès, vous rencontrez toujours quelques erreurs d’importation, etc. ..__ Maintenant, essayez d’invalider le cache et de redémarrer.

enter image description here

Étape 4

Vous verrez maintenant les importations pour Platform.loadPlatformComponent (); sans aucun problème

enter image description hereenter image description here

48
Talha Qamar

Je travaille avec seulement Android Studio et les fichiers du projet GitHub.

Voici ce que je devais faire, pour le bien de la postérité.

  1. Extraire le fichier zip de github
  2. Ouvrez le contenu dans Android Studio en tant que projet séparé et Construisez . Cela produit:
    • signalr-client-sdk-Android-debug.aar in Java-client\signalr-client-sdk-Android\build\outputs\aar
    • signalr-client-sdk.jar in Java-client\signalr-client-sdk\build\libs
  3. Copiez ces 2 fichiers dans le dossier libs de votre application.
  4. Allez dans le module build.gradle et ajoutez:
repositories {
    flatDir{
        dirs 'libs'
    }
}
dependencies {
    compile 'com.google.code.gson:gson:2.3.1'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile(name: 'signalr-client-sdk-Android-release', ext: 'aar')
}
  1. Outils, Android, Synchroniser le projet avec des fichiers Gradle , et lorsque cela a abouti, j’ai fait une génération .

  2. Puis finalement, cette ligne de code m'a donné la ALT+Enter Invitez à générer le imports pour cette ligne de code:

Platform.loadPlatformComponent(new AndroidPlatformComponent());

qui m'a donné:

import Microsoft.aspnet.signalr.client.Platform;
import Microsoft.aspnet.signalr.client.http.Android.AndroidPlatformComponent;

Ouf!

18
toddmo

Je travaille également uniquement avec Android Studio et les fichiers du projet GitHub, mais mes dépendances de graduations sont définies comme suit:

            implementation files('libs/signalr-client-sdk.jar')
            implementation files('libs/signalr-client-sdk-Android.aar')
0
José Maurício