Pasos para que SignalR funcione en Android Studio
android-studio (3)
Conseguí esto trabajando solo con Android Studio y los archivos del proyecto GitHub.
Esto es lo que tenía que hacer, por la posteridad.
- Extrae el archivo zip de github
- Abra los contenidos en Android Studio como un proyecto separado, y compile . Produce:
-
signalr-client-sdk-android-debug.aar
enjava-client/signalr-client-sdk-android/build/outputs/aar
-
signalr-client-sdk.jar
enjava-client/signalr-client-sdk/build/libs
-
- Copie estos 2 archivos en la carpeta
libs
de su aplicación. - Entra en el
build.gradle
del módulo y agrega:
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'')
}
Herramientas, Android, Sync Project con archivos Gradle , y cuando tuve éxito, hice una compilación .
Entonces, finalmente, esta línea de código me dio el indicador ALT + Intro para generar las
import
para esta línea de código:
Platform.loadPlatformComponent(new AndroidPlatformComponent());
que me dio
import microsoft.aspnet.signalr.client.Platform;
import microsoft.aspnet.signalr.client.http.android.AndroidPlatformComponent;
¡Uf!
Estoy tratando de llevar SignalR a mi proyecto de Android Studio .
Seguí con éxito el tutorial sobre cómo comenzar con SignalR , por lo que ahora tengo un Hub
funciona. El cliente en ese tutorial es javascript, y lo tengo funcionando correctamente en una página web (en Chrome) en la PC Y en mi teléfono Android a través de WiFi en la LAN de mi casa.
Luego me puse a trabajar con el cliente java de Android. Ya tenía un proyecto de aplicación de Android en Android Studio, que quiero hacer hablar con ese Hub
trabajo como prueba, como el siguiente paso.
Descargué el cliente oficial de Microsoft Java para Android , como un zip.
Luego lo extraje y lo cargué como un proyecto en Android Studio. Se construye sin errores.
Problema # 1: Este proyecto solo me da un AAR, no un JAR. He descubierto cómo usar un jar en Android Studio, así que si hay una manera de crear un jar en este momento, probablemente pueda hacer que esto funcione.
En este punto, incluí las dependencias en mi proyecto de aplicación. El readme.md dice:
Agregue la biblioteca signalr-client-sdk.jar, signalr-client-sdk-android.jar gson como una dependencia de gradle al proyecto.
Así que traté de seguir eso lo más cerca posible. Aquí está de mi 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'')
Problema n. ° 2: después de haber importado el aar como un módulo en el proyecto de mi aplicación en Android Studio, todavía no se ve el espacio de nombres necesario para que la declaración principal funcione. Aquí está la declaración principal (el hola mundo de SignalR en Android, compilador):
Platform.loadPlatformComponent(new AndroidPlatformComponent());
Al principio no detectaba nada, luego seleccionaba import microsoft.aspnet.signalr.client.Platform;
para la Platform
. Todavía no tiene ni idea de qué import
para AndroidPlatformComponent
, así que estoy atascado hasta que pueda superar esto.
Como saben, hay muchos archivos en Android Studio, y no quiero simplemente echarlos todos aquí antes de saber qué archivos quiere ver. Los agregaré como una edición si me dices qué archivos quieres ver.
Pues puedes descargar los archivos jar desde este link
Paso 1
Cree una carpeta libs dentro de su paquete y simplemente pegue estos archivos jar aquí.
Paso 2
Ahora agregue "compilar archivos" dentro de las dependencias de build.gradle
Ahora después de esto presione "Sincronizar Proyecto con archivo Gradle"
Paso 3
Incluso después de sincronizar e importar el jar con éxito, todavía se enfrentan algunos errores de importación, etc. Ahora intente Invalidar el caché y reiniciar. Después de un par de veces estará bien e importará todas las clases.
Etapa 4
Ahora verá las importaciones para Platform.loadPlatformComponent (); sin ningún problema
También conseguí este trabajo solo con Android Studio y los archivos del proyecto GitHub, pero mis dependencias de gradle se configuran así:
implementation files(''libs/signalr-client-sdk.jar'')
implementation files(''libs/signalr-client-sdk-android.aar'')