4

好吧,我正在编写一个 android 应用程序,我想使用Gottox 编写的Socket.IO-Client for Java。github 中的文档专门说该库与 android 兼容。

现在我的问题有点基本。如何在 android 应用程序中使用该库?

到目前为止,我已经尝试了两种方法。

  1. 我使用命令构建了该库的 jar 文件(如库的文档中所述)

    cd $PATH_TO_SOCKETIO_JAVA
    ant jar
    ls jar/socketio.jar
    

    我在文件夹中有一个不错的 jar 库。我将那个 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. 作为第二次尝试,我在 Eclipse 中使用 socket.io 库源代码创建了一个 java 项目。然后我将该项目导出为 jar 文件,使用

    RIGHT_CLICK->export->java->Jar File
    

    然后我使用我在方法 1(添加外部 jars)中尝试的相同方式将该 jar 文件添加到我的原始 android 项目中。这一次我也能够编译和构建,但在同一行代码中得到了相同的异常。

现在有人成功地在 android 中使用相同的库吗?它是如何完成的?

4

1 回答 1

1

好吧,我自己搞定了..

  1. 使用我在问题中提到的第一种方法,你会在路径中得到一个jar文件

    PATH_TO_SOCKETIO_JAVA/jar/socket.jar
    
  2. 现在在您的 android 项目中,创建一个名为“libs”的文件夹(如果它不存在)
  3. 将该 jar 文件复制到“libs”文件夹。
  4. 转到eclipse并刷新android项目。

我仍然不确定为什么使用项目属性中的“添加外部 Jars”按钮添加 jar 文件不起作用。两者都将库添加到项目中,对吗?

于 2012-07-16T12:03:25.510 回答