我是初学的android程序员。我遇到了SignalA的问题。有人试图运行SignalA客户端吗?它是如何工作的??? 我按照Erick的说法做了一切:下载SignalA.LongPolling。在SignalA.LongPolling basic-http-client上添加了对SignalA.LongPolling的引用。
然后添加到 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)
如何运行它,我不知道......((
答案 0 :(得分:2)
我也遇到了这个错误。我设法通过包含basic-http-client-android-0.88.jar和parallel-http-client.jar来使Signala工作。
后一个lib位于Signala的主分支中,与其他lib一起编译并将其复制到您的项目中。你需要在这里下载前库https://code.google.com/p/basic-http-client/
我使用android studio而不是eclipse,所以我也有一些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')
答案 1 :(得分:0)
我从源头上假设你的建筑物。当你克隆了github repo时,请执行以下操作。
git submodule init
and then
git submodule update
它将初始化basic-http-client,它作为子模块包含在项目中。然后你不需要安装jar。
希望这有帮助!
答案 2 :(得分:0)
我在项目中遇到了很多引用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 Files: - SignalA - SignalA.LongPolling - parallel-basic-http-client
将那些.jar文件+ basic-http-client-android-0.88.jar复制到我的项目中(Workspace / my_app / libs /)。
由于SignalA是Android平台上SignalR的唯一解决方案,我想与这里的求助者分享完整的解决方法。
您可以观看此视频,按照说明进行操作!