我的情况是我有一个Android项目(常规),它使用亚马逊AWS android libr jars(在libs文件夹中)。 我最近克隆了Autobahn(https://github.com/tavendo/AutobahnAndroid),我自己也在使用这个库项目。 问题是亚马逊图书馆使用杰克逊,它包含在aws jar核心罐中。由于Autobahn也具有相关性,因此在生成apk时会出现以下异常:
java.lang.IllegalArgumentException:已添加:Lorg / codehaus / jackson / Base64Variant;
由于我无法修改亚马逊库,有什么方法可以告诉Autobahn项目不要将jackson libs依赖项“导出”到我自己的项目中?
答案 0 :(得分:0)
问题是亚马逊图书馆使用杰克逊并且它包含在aws jar核心罐中
:: grumble,grumble ::
有什么方法可以告诉Autobahn项目不要将jackson libs依赖项“导出”到我自己的项目中?
不是我知道的。但是你可以让你的Autobahn的叉子依赖于AWS JAR,并摆脱它自己的Jackson副本。这假设亚马逊的嵌入式杰克逊完整且与高速公路兼容。
答案 1 :(得分:0)
https://autobahn.s3.amazonaws.com/android/autobahn-0.5.0.jar的JAR是纯粹的图书馆,只有高速公路课程,没有杰克逊的参考。
档案https://autobahn.s3.amazonaws.com/android/autobahn-0.5.0.zip包含 - 为方便起见 - 包括高速公路和杰克逊JAR。
当您使用来自GitHub的Autobahn源时,它将包含项目文件(以及示例等),然后设置对Jackson的依赖。
您可以通过转到repo中的Autobahn目录从源代码构建自己的JAR并执行ant jar
。然后,只将JAR放入您的项目中。这应该有用。
答案 2 :(得分:0)
我有一个非常类似的问题无法执行dex:多个dex文件使用Google Drive api和Google Spreadsheet api定义Lorg / codehaus / jackson / Base64Variant。这可能会有所帮助。
尝试了所有常用的Eclipse修复方法,清理,重建,启动/停止Eclipse,新工作区等。
如果你正在使用Eclipse,这就是我在不必管理.jar的情况下解决它的方法。
1)在Eclipse中,右键单击项目属性
2)单击Java Compiler
3)点击Building
4)单击“配置工作区设置”
5)点击启用项目特定设置
6)单击输出文件夹
7)点击“重建由他人修改的类文件”
希望这有帮助。