我试图将 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中有很多文件,在我知道您要查看哪些文件之前,我不想将它们全部吐出来。如果您告诉我要查看哪些文件,我会将它们添加为编辑。
答案 0 :(得分:48)
您可以从此link
下载jar文件第1步
在包中创建一个libs文件夹,只需将这些jar文件粘贴到此处即可。
第2步
现在在build.gradle
的依赖项中添加“compile files”
此后按“与Gradle文件同步项目”
第3步
即使在成功同步和导入jar之后,您仍然会遇到一些导入错误等。 现在尝试Invalidate cache并重新启动。几次之后它会很好并导入所有类
第4步
现在您将看到Platform.loadPlatformComponent()的导入;没有任何问题
答案 1 :(得分:18)
我只使用Android Studio和GitHub项目中的文件。
这是我必须做的事情,为了后人的缘故。
signalr-client-sdk-android-debug.aar
java-client\signalr-client-sdk-android\build\outputs\aar
在signalr-client-sdk.jar
java-client\signalr-client-sdk\build\libs
libs
文件夹中。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')
}
工具,Android,使用Gradle文件同步项目,如果成功,我执行了构建。
最后,这行代码给了我 ALT + Enter 提示符,为这行代码生成import
:< / p>
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