Android Studio构建错误 - 多个dex文件定义Landroid/support/v4 /

Igo*_*sky 24 android android-support-library

我无法在Android Studio中构建我的项目.我收到以下错误:

Error:Android Dex: [RaditazAndroid] Unable to execute DX
Error:Android Dex: [RaditazAndroid] com.android.dx.util.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
Error:Android Dex: [RaditazAndroid] at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:592)
Error:Android Dex: [RaditazAndroid] at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:550)
Error:Android Dex: [RaditazAndroid] at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:531)
Error:Android Dex: [RaditazAndroid] at com.android.dx.merge.DexMerger.mergeDexBuffers(DexMerger.java:168)
Error:Android Dex: [RaditazAndroid] at com.android.dx.merge.DexMerger.merge(DexMerger.java:186)
Error:Android Dex: [RaditazAndroid] at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:300)
Error:Android Dex: [RaditazAndroid] at com.android.dx.command.dexer.Main.run(Main.java:232)
Error:Android Dex: [RaditazAndroid] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Error:Android Dex: [RaditazAndroid] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
Error:Android Dex: [RaditazAndroid] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
Error:Android Dex: [RaditazAndroid] at java.lang.reflect.Method.invoke(Method.java:597)
Error:Android Dex: [RaditazAndroid] at org.jetbrains.android.compiler.tools.AndroidDxRunner.runDex(AndroidDxRunner.java:147)
Error:Android Dex: [RaditazAndroid] at org.jetbrains.android.compiler.tools.AndroidDxRunner.main(AndroidDxRunner.java:276)
Error:Android Dex: [RaditazAndroid] at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:121)
Run Code Online (Sandbox Code Playgroud)

但是,这个错误对我来说毫无意义.它没有提供关于我应该从哪里开始修复我的项目的线索.有没有人遇到过类似的东西?

Igo*_*sky 44

对于任何有兴趣的人,我解决了自己的问题.我的错误是我在所有项目的模块库文件夹中粘贴了android-support-v4.jargoogle-play-services.jar(我的项目由3个模块组成).我必须做的是将这些jar只粘贴到我主模块的lib文件夹中,其他模块会自动引用它们.


ful*_*oon 16

远离Android Studio,我在finder/workspace中打开了项目并执行了以下操作:

1- MyProject文件夹 - > build - > intermediate - > dex-cache - > cache.xml,并删除所有support-v4.jar项.

2-同样远离Android Studio,去我项目中的每个模块 - > lib文件夹 - >并删除support-v4.jar.

然后清理项目并运行它,它工作感谢上帝:)


小智 6

我有同样的错误.通过添加到gradle文件来解决它.

    dependencies{
        compile 'com.google.android.gms:play-services:8.3.0'
        compile 'com.android.support:appcompat-v7:23.1.0'
        compile 'com.android.support:support-v4:23.1.0'
    } 
Run Code Online (Sandbox Code Playgroud)


car*_*l7j 6

如果你有:

compile 'com.android.support:recyclerview-v7:24.2.0'
compile('com.android.support:appcompat-v7:23.2.0') { exclude group: 'com.google.android', module: 'support-v4' }
Run Code Online (Sandbox Code Playgroud)

在您的项目中,还添加:

compile 'com.android.support:support-v4:24.2.0'
Run Code Online (Sandbox Code Playgroud)

要么

compile 'com.android.support:design:24.2.0'
Run Code Online (Sandbox Code Playgroud)