【问题标题】:How to disable dependency jar to be exported from a library project to a regular project如何禁用依赖 jar 从库项目导出到常规项目
【发布时间】:2012-09-20 16:23:42
【问题描述】:

我的情况是我有一个使用 Amazon AWS android libr jars(在 libs 文件夹内)的 Android 项目(常规)。 我最近克隆了 Autobahn (https://github.com/tavendo/AutobahnAndroid),我自己使用这个库项目。 问题是亚马逊库使用杰克逊,它包含在 aws jar 核心罐中。由于 Autobahn 也有这种依赖关系,我在生成 apk 时遇到以下异常:

java.lang.IllegalArgumentException:已添加:Lorg/codehaus/jackson/Base64Variant;

由于我无法修改 amazon 库,有什么方法可以告诉 Autobahn 项目不要将 jackson 库依赖项“导出”到我自己的项目中?

【问题讨论】:

    标签: android amazon-s3 shared-libraries autobahn


    【解决方案1】:

    https://autobahn.s3.amazonaws.com/android/autobahn-0.5.0.jar 的 JAR 是纯库,仅包含 Autobahn 类,没有引用 Jackson。

    存档 https://autobahn.s3.amazonaws.com/android/autobahn-0.5.0.zip 包含 - 为了方便起见 - Autobahn 和 Jackson JAR。

    当您使用来自 GitHub 的 Autobahn 源时,它将包含项目文件(加上示例等),然后设置对 Jackson 的依赖。

    您可以通过转到 repo 中的 Autobahn 目录并执行 ant jar 来从源代码构建您自己的 JAR。然后,只将该 JAR 放入您的项目中。应该可以的。

    【讨论】:

    • 我试过了,但由于某种原因它创建了一个空罐子(只是元 inf 的东西)。我会再检查一遍。谢谢!。
    • 顺便说一句,我在 Git 上使用该项目是因为我在另一个问题中看到了您的回复,建议在 git stackoverflow.com/questions/9586676/… 上使用该项目。
    • 是的,使用 repo 源而不是 JAR 可能更好。 ant jar 的东西应该工作。如果没有,请随时在 Github 上提交问题。
    【解决方案2】:

    问题是亚马逊库使用杰克逊,它包含在 aws jar 核心 jars 中

    :: 抱怨,抱怨::

    有什么方法可以告诉 Autobahn 项目不要将 jackson 库依赖项“导出”到我自己的项目中?

    我不知道。但是你可以让 Autobahn 的分支依赖于 AWS JAR,并摆脱它自己的 Jackson 副本。不过,这假设亚马逊的嵌入式 Jackson 是完整的并且与 Autobahn 兼容。

    【讨论】:

      【解决方案3】:

      我遇到了与无法执行 dex 非常相似的问题:多个 dex 文件使用 Google Drive api 和 Google Spreadsheet api 定义 Lorg/codehaus/jackson/Base64Variant。这可能会有所帮助。

      尝试了所有常用的 Eclipse 修复方法,清理、重建、启动/停止 Eclipse、新工作区等。

      如果您使用的是 Eclipse,这就是我无需管理 .jar 即可解决的方法。

      1) 在 Eclipse 中,右键单击您的项目属性

      2) 点击Java编译器

      3) 点击建筑

      4) 点击配置工作区设置

      5) 点击启用项目特定设置

      6) 点击输出文件夹

      7) 点击“重建其他人修改的类文件”

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-19
        • 1970-01-01
        • 1970-01-01
        • 2013-11-25
        • 1970-01-01
        • 2017-06-09
        相关资源
        最近更新 更多