2012-09-20 20 views
0

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

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

既然不能修改亚马逊图书馆,有什么办法,我可以告诉高速公路项目没有“出口”杰克逊库的依赖关系到我自己的项目?

回答

0

JAR https://autobahn.s3.amazonaws.com/android/autobahn-0.5.0.jar是纯粹的库只有高速公路类和没有提及杰克逊。

档案https://autobahn.s3.amazonaws.com/android/autobahn-0.5.0.zip包含 - 作为方便 - 高速公路和杰克逊JAR。

当你从GitHub使用Autobahn源代码时,它将包含项目文件(加上例子等),然后设置对Jackson的依赖关系。

您可以去回购中的高速公路建设目录从源头上自己的JAR,并做了ant jar。然后,只将该JAR放入您的项目中。这应该工作。

+0

我试过,但由于某种原因,它正在创建一个空的jar(只是元inf的东西)。我会再检查一次。谢谢!。 – fr4gus

+0

顺便说一句我在Git上使用这个项目,因为我在另一个问题上看到了你的回复,提示项目在git上的用法。http://stackoverflow.com/questions/9586676/autobahn-websockets-android-demo-crashes。 – fr4gus

+0

是的,使用repo源代替JAR可能会更好。 '蚂蚁罐'的东西_应该工作。如果没有,请随时在Github上提交问题。 – oberstet

0

的问题是,亚马逊库使用杰克逊和它包含在AWS罐子核心罐子

::叽,叽::

有什么办法,我可以告诉高速公路项目不要将杰克逊库的依赖项“导出”到我自己的项目中?

这并不是说我知道。但是,您可以让您的高速公路叉取决于AWS JAR,并摆脱它自己的Jackson副本。这假定亚马逊的嵌入式杰克逊是完整的,并与高速公路兼容。

0

我有无法执行一个非常类似的问题DEX:多DEX文件中使用谷歌云端硬盘API的和谷歌电子表格的API定义Lorg/Codehaus的/杰克逊/ Base64Variant。这可能有帮助。

尝试了所有的常用Eclipse的修复方法,干净,改造,启动/如果你使用的是Eclipse的Eclipse停止,新的工作区等

,这是我如何解决它,而无需管理的.jar的。

1)在Eclipse中,右键点击你的项目属性

2)点击Java编译器

3)点击

4号楼),点击配置工作区设置

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

6)单击输出文件夹

7)点击'重建他人修改的类文件'

希望这会有所帮助。

相关问题