2012-07-16 25 views
4

那麼,我正在編寫一個Android應用程序,我想使用由Gottox編寫的Socket.IO-Client for Java。 github中的文檔特別指出該庫與android兼容。Android:在Android應用程序中使用Gottox中的java socket.io客戶端

現在我的問題是有點基本。 如何在Android應用程序中使用該庫?

到目前爲止,我已經嘗試了兩種方法。

  1. 我建立了使用命令該庫的jar文件(如圖書館的doc解釋 )

    cd $PATH_TO_SOCKETIO_JAVA 
    ant jar 
    ls jar/socketio.jar 
    

    我的文件夾在一個不錯的罐子庫。我補充說,罐子使用

    RIGHT_CLICK->Properties->Java Build Path->Add External Jars 
    

    我 項目,然後我用

    SocketIO socket = new SocketIO("http://"+ip+":"+port+"/"); 
    

    我能夠編譯和構建我的應用程序沒有任何錯誤連接。但是當我運行時,我在上面發佈的行上發現了異常。

    java.lang.NoClassDefFoundError: io.socket.SocketIO 
        at com.research.socketioresearch.LoginActivity.connectToSocketIO(LoginActivity.java:122) 
        at com.research.socketioresearch.LoginActivity$1.handleMessage(LoginActivity.java:113) 
    
  2. 作爲第二次嘗試,我創建使用socket.io 庫的源代碼在我的Eclipse的Java項目。然後我導出的項目爲使用

    RIGHT_CLICK->export->java->Jar File 
    

    然後我補充說jar文件使用 同樣的方式在我的方法1想盡自己的原生Android項目(添加外部JAR)一個 jar文件。這一次我也能夠編譯和編譯 ,但在 代碼的同一行得到相同的異常。

現在任何人都可以在android中使用相同的庫成功嗎?它是如何完成的?

回答

1

嗯,我懂了工作自己..

  1. 使用我在問題中提到的第一種方法,你會在你的Android路徑獲得一個jar文件 現在

    PATH_TO_SOCKETIO_JAVA/jar/socket.jar 
    
  2. 項目,創建一個名爲「庫」文件夾(如果它是 尚不存在)
  3. 該JAR文件複製到「庫」文件夾。
  4. 轉到eclipse並刷新android項目。

我仍然不確定爲什麼使用項目屬性中的「添加外部罐子」按鈕添加jar文件不起作用。兩個庫都添加到項目的權利?

+0

我會回來和接受的答案時,SO允許我這樣做.. – Krishnabhadra 2012-07-16 12:04:52

+1

添加外部JAR不應包括在構建環境。它應該只在從eclipse工作時才起作用。但是一旦你把它放在別的地方,它就不會包括罐子。爲此使用'Add jar'方法。 http://www.coderanch.com/t/444029/vc/difference-between-including-jar-files – blessenm 2012-07-18 22:16:48

+0

hy @Krishnabhadra。我相信你能解決你的問題。我想問你一個問題。您是否能夠在android應用程序中從您的服務器獲取消息?如果是這樣,你是否這樣做..如果你能幫助我,我將非常感激。請如果你有一些時間,看看我的問題在堆棧溢出。 – Abstract 2015-02-03 04:58:34

相關問題