Android上的SignalR客户端(SignalA)不起作用

问题描述:

我是一名初学者的android程序员。我遇到SignalA问题。有人试图运行SignalA客户端?它是如何工作的??? 我尽我所能写Erick:下载SignalA.LongPolling。添加了对SignalA.LongPolling的引用,添加到SignalA.LongPolling basic-http-client上。Android上的SignalR客户端(SignalA)不起作用

然后加入MainActivity

package com.example.testdemo; 

import com.zsoft.SignalA.Connection; 
import com.zsoft.SignalA.Transport.StateBase; 
import com.zsoft.SignalA.transport.longpolling.LongPollingTransport; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.widget.Toast; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     String url = "http://signalrcalc.apphb.com/"; 
     Connection con = new com.zsoft.SignalA.Connection(url, this, new LongPollingTransport()) { 

       @Override 
       public void OnError(Exception exception) { 
        Toast.makeText(MainActivity.this, "On error: " + exception.getMessage(), Toast.LENGTH_LONG).show(); 
       } 

       @Override 
       public void OnMessage(String message) { 
        Toast.makeText(MainActivity.this, "Message: " + message, Toast.LENGTH_LONG).show(); 
       } 

       @Override 
       public void OnStateChanged(StateBase oldState, StateBase newState) { 
       } 
      }; 

      con.Start(); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

} 

而且得到了一个错误:

04-25 07:05:30.112: E/AndroidRuntime(275): FATAL EXCEPTION: main 
04-25 07:05:30.112: E/AndroidRuntime(275): java.lang.NoClassDefFoundError: com.zsoft.SignalA.transport.longpolling.ConnectingState$1 
04-25 07:05:30.112: E/AndroidRuntime(275): at com.zsoft.SignalA.transport.longpolling.ConnectingState.OnRun(ConnectingState.java:39) 
04-25 07:05:30.112: E/AndroidRuntime(275): at com.zsoft.SignalA.transport.longpolling.StopableStateWithCallback.Run(StopableStateWithCallback.java:29) 
04-25 07:05:30.112: E/AndroidRuntime(275): at com.zsoft.SignalA.ConnectionBase.SetNewState(ConnectionBase.java:46) 
04-25 07:05:30.112: E/AndroidRuntime(275): at com.zsoft.SignalA.transport.longpolling.DisconnectedState.OnRun(DisconnectedState.java:42) 
04-25 07:05:30.112: E/AndroidRuntime(275): at com.zsoft.SignalA.Transport.StateBase.Run(StateBase.java:28) 
04-25 07:05:30.112: E/AndroidRuntime(275): at com.zsoft.SignalA.transport.longpolling.DisconnectedState.Start(DisconnectedState.java:25) 
04-25 07:05:30.112: E/AndroidRuntime(275): at com.zsoft.SignalA.ConnectionBase.Start(ConnectionBase.java:127) 
04-25 07:05:30.112: E/AndroidRuntime(275): at com.example.testdemo.MainActivity.onCreate(MainActivity.java:38) 

如何运行呢,我不知道...(((

我假设您的源代码为building。当您克隆github回购时,请执行以下操作。

git submodule init 
and then 
git submodule update 

它将初始化basic-http-client,它作为子模块包含在项目中。然后你不需要安装jar。

希望这会有所帮助!

我我设法通过包含basic-http-client-android-0.88.jar和parallel-http-client.jar来获得Signala的工作。

后者库在Signala的主分支,与其他库编译它,并将其复制到您的项目。前者lib中,你需要在这里下载https://code.google.com/p/basic-http-client/

我使用Android的工作室,而不是日食,所以我有太多的gradle的几个问题;如果遇到这些问题,请务必在依赖关系中的build.gradle中包含以下内容:

compile files('libs/signala.jar','libs/basic-http-client-android-0.88.jar','libs/parallel-basic-http-client.jar','libs/signala.longpolling.jar') 
+0

我有完全相同的问题,有进口的库,但在项目层面。我必须去Project Structure,选择Project Module,然后在Dependencies选项卡中添加库。只有在那之后,它才会奏效。 – 2013-09-18 16:50:18

+0

看看演示项目,看看我如何配置我的Gradle构建。或者包含来自Maven Central的SignalA。 – 2014-01-18 08:38:21

我也遇到了很多问题,在我的项目引用SignalA。我试图将SignalA,SignalA.LongPolling和parallel-basic-http-client引用到我的项目中。在将basic-http-client-android-0.88.jar库导入到SignalA.LongPolling和parallel-basic-http-client作为项目库之后,我能够毫无错误地编译我的项目。但是,当我尝试打开Signalr HubConnection时,应用程序崩溃。我得到的错误与@ Kiran的错误非常相似。

我花了几个小时摆弄它,并最终设法使其没有任何错误的工作。我的方法是把 'src' 中的文件夹导出以下库的JAR文件: - SignalA - SignalA.LongPolling - 并行基本-HTTP客户端

,并复制这些.jar文件+基本-HTTP- client-android-0.88.jar放入我的项目(Workspace/my_app/libs /)。

至于SignalA是SignalR Android平台唯一的解决办法,我想到这里的求助者分享一个完整的解决方法。

您可以观看这部影片遵循指示一步一步!

https://www.youtube.com/watch?v=f9ih_M7PC10

+0

不错的视频!我只想提到我已经将SignalA上传到Maven Central。希望能够更容易地使用库。有关详细信息,请参阅github上的自述文件。 – 2014-01-18 08:36:15