如何正确地将第三方库捆绑到.jar创建的库项目中?

时间:2015-02-20 17:52:53

标签: java android intellij-idea loopj

我正在尝试构建开发人员可以在其项目中包含的SDK (。jar)。 项目将使用loopj网络第三方库来实现网络功能。 所以,我需要将一个库(loopj)捆绑到另一个库(我们的自定义库)中,然后输出一个jar。

有两个项目,(1) SDK库项目,以及(2)用于测试SDK库的 demo android应用程序项目

SDK库项目编译得很好,使用loopj类的类能够毫无问题地引用它们。我编译SDK项目以输出.jar文件以在demo android项目中进行测试。

问题是,当我将.jar文件添加到演示应用程序项目时,会出现一个错误,即库类无法“看到”loopj网络类(底部错误)。奇怪,因为相关的类在库项目中看到loopj没有问题。所以,我假设我没有正确地将loopj库添加到库项目中。也许我错过了某个地方的一步......

我尝试的事情:

  • 通过'File>将loopj jar添加到库项目(SDK)项目结构>图书馆> +添加'
  • 确认了对项目库(SDK)可见的loopj类
  • 导出库项目(SDK)本身,作为jar
  • 将SDK的jar添加到演示应用程序项目中,以进行测试
  • (演示项目崩溃:SDK对象找不到loopj类)

问题: 将第三方库正确捆绑到.jar创建的库项目中的过程是什么?

*使用Intellij IDEA 14 CE

02-20 12:44:43.535  20301-20301/com.zoids.android.example E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.zoids.android.example, PID: 20301
    java.lang.NoClassDefFoundError: com.loopj.android.http.AsyncHttpClient
            at com.zoids.Zoids.detectImageWithURL(Zoids.java:184)
            at com.zoids.android.example.MyActivity.onCreate(MyActivity.java:52)
            at android.app.Activity.performCreate(Activity.java:5231)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)

1 个答案:

答案 0 :(得分:0)

首先,这个问题是由于你的类路径/构建路径上缺少jar 因此,请尝试右键单击您的项目并添加外部jar,如loopj,并将其添加到项目的路径中......

其次将所有这些捆绑在一起....通常有一个导出项目的选项...选择jar作为输出,这就是it.hope它有帮助。