在Android Studio中使SignalR工作的步骤

tod*_*dmo 22 signalr android-studio

我正在尝试将SignalR引入我的Android Studio项目.

我成功地遵循了关于SignalR入门的教程,所以现在我有了工作Hub.该教程中的客户端是javascript,我在PC上的网页(在Chrome中)以及在我的家庭LAN上通过WiFi在我的Android手机上运行正常.

然后我去了Android java客户端工作.我已经在Android Studio中安装了一个Android应用程序项目Hub,作为下一步,我想与之进行对话.

我下载了适用于Android的官方Microsoft java客户端,作为zip.

然后我将其解压缩并将其作为项目加载到Android Studio中.它构建没有错误.

问题#1:这个项目只给我一个AAR,而不是一个JAR.我已经想出如何在Android Studio中使用jar,所以如果有一种方法可以在这个时刻创建一个jar,我可能会让这个工作.

此时我将依赖项包含到我的应用程序项目中.readme.md说:

添加signalr-client-sdk.jar,signalr-client-sdk-android.jar gson库作为项目的gradle依赖项.

所以我试着尽可能地跟着它.这是我的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')
Run Code Online (Sandbox Code Playgroud)

问题2:将aar作为模块导入Android Studio中的app项目后,它仍然没有看到必要的命名空间来使主要语句工作.这是主要声明(Android中SignalR的hello world,编译方式):

Platform.loadPlatformComponent(new AndroidPlatformComponent());
Run Code Online (Sandbox Code Playgroud)

起初,它没有拿起任何东西,然后拿起import microsoft.aspnet.signalr.client.Platform;Platform.它仍然没有什么线索来import进行AndroidPlatformComponent,所以我坚持,直到我能过去这一点.

如你所知,Android Studio中有很多文件,我不想在我知道你想看哪些文件之前将它们全部喷出来.如果你告诉我你想看哪些文件,我会将它们添加为编辑.

Tal*_*mar 48

那么你可以从这个链接下载jar文件

步骤1

在包中创建一个libs文件夹,只需在这里粘贴这些jar文件即可.

在此输入图像描述

第2步

现在在build.gradle的依赖项中添加"compile files"

在此输入图像描述

在此之后按"与Gradle文件同步项目" 在此输入图像描述

第3步

即使在成功同步和导入jar之后,您仍然会遇到一些导入错误等.现在尝试Invalidate cache并重新启动.几次后它会很好并导入所有类

在此输入图像描述

第4步

现在您将看到Platform.loadPlatformComponent()的导入; 没有任何问题

在此输入图像描述 在此输入图像描述


tod*_*dmo 18

我只使用Android Studio和GitHub项目中的文件.

为了后人的缘故,这就是我必须做的事情.

  1. github中提取zip文件
  2. 在Android Studio中打开内容作为单独的项目和Build.它产生:
    • signalr-client-sdk-android-debug.aarjava-client\signalr-client-sdk-android\build\outputs\aar
    • signalr-client-sdk.jarjava-client\signalr-client-sdk\build\libs
  3. 将这2个文件复制到libs您应用的文件夹中.
  4. 进入模块build.gradle并添加:
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')
}
Run Code Online (Sandbox Code Playgroud)
  1. 工具,Android,与Gradle文件同步项目,当成功时,我做了一个Build.

  2. 最后,这行代码给了我ALT+ Enter提示,import为这行代码生成s:

Platform.loadPlatformComponent(new AndroidPlatformComponent());
Run Code Online (Sandbox Code Playgroud)

这给了我:

import microsoft.aspnet.signalr.client.Platform;
import microsoft.aspnet.signalr.client.http.android.AndroidPlatformComponent;
Run Code Online (Sandbox Code Playgroud)

呼!