【问题标题】:Mashape Unirest Java : java.lang.NoClassDefFoundErrorMashape Unirest Java:java.lang.NoClassDefFoundError
【发布时间】:2013-11-02 23:40:26
【问题描述】:

我正在使用 Mashape 的 Unirest library(unirest-java-1.2.6.jar) 构建一个应用程序。 我在运行时收到NoClassDefFoundError。我试过CommonsWare的方法。但它没有用。这是 Java 构建路径的屏幕截图。这个截图有什么问题吗??

【问题讨论】:

    标签: android eclipse mashape unirest


    【解决方案1】:

    我是Unirest-Java 的作者。

    为了使用该库,您需要在项目中包含所需的依赖项:

    • Apache HttpComponents 客户端
    • Apache HttpComponents AsyncClient
    • Apache HttpComponents Mime
    • JSON 库

    使用Maven 是首选方法:https://github.com/Mashape/unirest-java#installing

    否则库可以从http://hc.apache.org/downloads.cgihttp://www.json.org/java/index.html手动下载

    但同样,我强烈建议使用 Maven。另外请将 Unirest 库更新到最新版本,因为 1.2.6 现在已弃用。

    【讨论】:

    • 我尝试使用 Maven 插件安装 eclipse 。我使用您的内容 gist.github.com/thefosk/7325187 创建了 pom.xml 文件。我通过右键单击pom.xml 完成了Maven Install,它生成了一个名为target 的文件夹,其中包含一组带有snapshot.jar 文件的文件。您可以在此处查看屏幕截图i41.tinypic.com/27y8q39.jpg 在创建请求时显示错误。如何导入 Unirest?
    • 在项目中导入库后,还需要在源文件中导入依赖。你能在“public class [..]”之前添加这段代码吗:gist.github.com/thefosk/7343991
    • 我的意思是说,除了 Unirest 之外,其他文件都是使用 Maven 导入的。它在 android 项目中创建了 Snapshot.jar 文件。请看这个截图i.imgur.com/auHM1SX.jpg
    【解决方案2】:

    建议使用 Maven 将所有内容打包在一个 uber jar 中。

    请参阅post,了解如何在您的 Java 项目中使用 Unirest。

    【讨论】:

      【解决方案3】:

      这可能不适用于许多人,但我收到此错误是因为我有一个错误的 jar 被 gradle 捆绑。这是一个包含 unirest 的胖 jar 依赖项,被存储在代码库中,并且没有明确列出 - 相反,它与 gradle 语句捆绑在一起:

      dependencies {
          compile fileTree(include: ['*.jar'], dir: 'libs')
      }
      

      【讨论】:

        猜你喜欢
        • 2014-07-26
        • 2014-03-18
        • 2014-05-01
        • 2020-06-27
        • 1970-01-01
        • 2017-04-19
        • 2020-05-19
        • 2016-04-21
        • 2020-02-03
        相关资源
        最近更新 更多