同一个项目中有多个android-support-v4版本

时间:2013-11-22 17:37:57

标签: java android jar android-support-library

我在我的项目中使用android-support-v4-r19(最新版本),我需要使用另一个库(jar)但是这个库也使用了android-support-v4(旧版本),所以当我尝试运行我的应用程序我收到此错误:

Unable to execute dex: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;

Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;

我想这是因为有两个不同版本的android-support-v4库,但是我无法从这个库中删除android-support-v4(旧版本),因为我有jar文件,我无法删除android-support -v4-r19来自我的项目,因为我需要的类和android-support-v4(旧版本)中不存在。

我该怎么办?

2 个答案:

答案 0 :(得分:0)

配置构建路径。删除v4库。如果您无法从那里删除它,请转到您的项目位置并从那里删除它。您不能使用两个支持库

为什么你无法删除v4库?它是在Android Private Libraries文件夹中。如果是删除整个私有库文件夹。

或者我告诉你的更简单的方式 - 导航到您的项目位置并删除v4库(您可以在项目的构建路径中找到v4库的位置。找到您的v4库。该位置也应该出现在那里

答案 1 :(得分:0)

  

我无法从此库中删除android-support-v4(旧版本),因为我有jar文件

我解释这意味着来自“另一个库”的JAR文件包含来自android-support-v4的类。在这种情况下,您可能想重新考虑使用“另一个库”。就个人而言,我不会用三米高的杆子碰它。

但是,您可以尝试通过将JAR文件作为ZIP存档打开并删除您看到的任何android.*类来从中恢复。然后,JAR将最终使用项目自己的android-support-v4.jar

副本中的类

此更改可能会破坏“另一个库”:

  • 他们的android.*类版本被修改,“另一个库开发人员没有将它们重构为其他包,或

  • Android支持包中的常规代码更改只会破坏“另一个库”,在这种情况下,您可以使用“另一个库”的源代码修复它们,或者您遇到了麻烦