在Android Studio中使SignalR工作的步骤

时间:2015-04-13 17:12:37

标签: android-studio signalr

我试图将 SignalR 带入我的 Android Studio 项目。

我成功地按照getting started with SignalR上的教程,所以现在我有一个工作Hub。该教程中的客户端是javascript,我在PC上的网页(在Chrome中)以及在家庭LAN上通过WiFi在我的Android手机上运行正常。

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

我以zip格式下载了官方微软java client for Android

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

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

此时我将依赖项包含到我的app项目中。 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')

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

Platform.loadPlatformComponent(new AndroidPlatformComponent());

起初它并没有拿起任何东西,然后它为import microsoft.aspnet.signalr.client.Platform;选择了Platform。它仍然不清楚import AndroidPlatformComponent对{{1}}的影响,所以我一直坚持下去,直到我能够解决这个问题。

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

3 个答案:

答案 0 :(得分:48)

您可以从此link

下载jar文件

第1步

在包中创建一个libs文件夹,只需将这些jar文件粘贴到此处即可。

enter image description here

第2步

现在在build.gradle

的依赖项中添加“compile files”

enter image description here

此后按“与Gradle文件同步项目”enter image description here

第3步

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

enter image description here

第4步

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

enter image description here enter image description here

答案 1 :(得分:18)

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

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

  1. zip file
  2. 中提取github
  3. 将Android Studio中的内容作为单独的项目打开,然后构建。它产生:
      signalr-client-sdk-android-debug.aar
    • java-client\signalr-client-sdk-android\build\outputs\aarsignalr-client-sdk.jar
    • java-client\signalr-client-sdk\build\libs
  4. 将这2个文件复制到应用的libs文件夹中。
  5. 进入模块' build.gradle并添加:
  6. 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. 工具,Android,使用Gradle文件同步项目,如果成功,我执行了构建

    2. 最后,这行代码给了我 ALT + Enter 提示符,为这行代码生成import:< / p>

    3. Platform.loadPlatformComponent(new AndroidPlatformComponent());
      

      给了我:

      import microsoft.aspnet.signalr.client.Platform;
      import microsoft.aspnet.signalr.client.http.android.AndroidPlatformComponent;
      

      <强>呼!

答案 2 :(得分:0)

我还使用了Android Studio和GitHub项目中的文件,但我的gradle依赖项设置如下:

static