2013-04-25 37 views
2

我是一名初學者的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) 

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

回答

0

我假設您的源代碼爲building。當您克隆github回購時,請執行以下操作。

git submodule init 
and then 
git submodule update 

它將初始化basic-http-client,它作爲子模塊包含在項目中。然後你不需要安裝jar。

希望這會有所幫助!

2

我我設法通過包含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

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文件: - 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