我在我的项目中使用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(旧版本)中不存在。
我该怎么办?
答案 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支持包中的常规代码更改只会破坏“另一个库”,在这种情况下,您可以使用“另一个库”的源代码修复它们,或者您遇到了麻烦