安卓社交SDK:无法执行dex:多个dex文件定义

5
我正在我的Android应用项目(API 18)中使用Socialize SDK
我已阅读其Getting Started文档并按照说明进行了实现。
然而,我遇到了几个有关库导入的问题。我尝试将所有JAR文件放在项目的/libs文件夹中,但它无法定位可绘制项,因为我没有包含它们的/res文件夹。
因此,我配置了我的项目的构建路径以包括库。现在出现了这个错误:
[2013-11-20 10:11:04 - Dex Loader] Unable to execute dex: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;

[2013-11-20 10:11:04 - WebShopper] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;

我已经将Socialize项目文件夹导入Eclipse以使用其库。但是我无法解决这个错误。
以下是我的构建路径的当前状态,如果有帮助:

Java Build Path

有什么问题吗?这里是否有重复的库需要删除?
如有需要,请告知。
6个回答

4

3
这种类型的错误是由于项目中存在多个库或jar文件引起的。请按照以下步骤操作:
  1. 首先删除导入的库。
  2. 然后清理你的项目。
  3. 进入项目属性,点击Java Build Path,然后选择Library并导入jar文件。
  4. 刷新你的项目并重新运行。
希望这能帮到你.. :)

0

我通过将所有 jar 文件 放在同一个磁盘中解决了这个异常。

例如:将您的项目 工作区 + jar 文件放在同一个磁盘中,例如 D 盘。


0
对我来说,问题在于我之前添加了一个库项目(autobahn lib),后来切换到了同一库的Jar文件。虽然我已经删除了对旧库项目的引用,但仍然出现了这个错误。 按照这里所有的答案,我检查了构建路径等等。但是我没有手动将这些库添加到构建路径中。所以我没有什么可以移除的。 最后发现了这个文件夹。

bin/dexedLibs

我注意到有两个相同名称的jar文件对应于autobahn Android,这导致了冲突。因此,我删除了dexedLibs文件夹中的所有jar文件,并重新构建了项目。这解决了问题。

0

前往项目的bin和dexedLibs文件夹,删除那里的重复库。这个问题最常见的原因是,在项目的lib文件夹中有一个本地版本的jar包,并且在Java构建路径中用户可能会再次添加相同的jar包到项目中。这将反映在dexedLibs文件夹中。编译器将无法解析此情况下对确切类的调用。删除lib和dexedLibs中的jar包。清理并重新构建。


0
每当你遇到这个问题时,你必须阅读信息。从字面上看,我们可以看到你的项目中有相同的类文件,即android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl。
如果你找不到这两个重复的库?你只需要创建一个新项目,并将所有jar文件复制到新项目/libs目录下。运行--->出现错误--->然后你删除一些jar--->构建项目--->运行。直到你删除了一些jar,项目才能正常运行,然后你解压缩jar文件,就会在错误信息中找到该类。 现在,你找到了这两个库,只需要决定删除其中一个即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接