Android Studio构建错误-多个dex文件定义Landroid/support/v4/
我无法在Android Studio中构建我的项目。我得到以下错误:Android Studio构建错误-多个dex文件定义Landroid/support/v4/,android,android-support-library,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/AccessibilityServiceI
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)
然而,这个错误对我来说毫无意义。它没有提供我应该从哪里开始修复我的项目的线索。有人遇到过类似的事情吗?对于有兴趣的人,我解决了自己的问题。我的错误是,我在我的项目的所有模块库文件夹(我的项目由3个模块组成)中粘贴了android-support-v4.jar和google play services.jar。我要做的是只将这些JAR粘贴到主模块的lib文件夹中,其他模块将自动引用它们。在我的情况下,问题出在模块sdk版本中。我将它从2.2改为4.4,问题就解决了。我使用了一种不同的方法,将ABS res文件夹与我的res文件夹合并,并使用ActionBarSherlock.jar作为全局库 到目前为止效果很好,希望这对其他人有所帮助!但这是一个黑客,因为我厌倦了做很多事情,我不能使用Gradle,因为其他一些开发人员在没有Gradle的情况下使用EclipseADT
问题的根本原因是在ABS和我的项目中都使用了android-support-v4,这使DEX变得复杂。在远离android Studio的地方,我在finder/workspace中打开了项目,并执行了以下操作: 1-MyProject文件夹->构建->中间->索引缓存->cache.xml,并删除所有support-v4.jar项目 2-也离开了Android Studio,访问了我的项目->lib文件夹->中的每个模块,并删除了support-v4.jar 然后清理了项目并运行了它,感谢上帝:)我也犯了同样的错误 从project/app/libs文件夹中删除一个库(jtwitter.jar)对我很有帮助
然后清理了项目并运行了它,它成功了。我也有同样的错误。通过添加到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'
}
清理和重建是我开始工作所需的一切。如果其他人对通过提供的项目Tango示例有此问题,我通过在应用程序的
build.gradle
文件中为那些未能运行的项目注释以下行来解决此问题:
编译文件树(dir:external_lib_prefix+'/jar',包括:['**.jar'])
如果您有:
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' }
在项目中,还添加:
compile 'com.android.support:support-v4:24.2.0'
或
我在Android Studio 2.3中也遇到了同样的问题,在我的例子中,我的版本号混合在一起,导致构建失败,我改变了:
dependencies {
compile 'com.google.android.gms:play-services-wearable:7.5.0'
compile 'com.google.android.gms:play-services-analytics:7.5.0'
compile 'com.google.android.gms:play-services-drive:8.4.0'
}
到
对于想知道为什么这个问题仍然存在的人,即使做了所有其他建议的事情,这可能会有所帮助 对于我来说,问题是在我添加Glide库时开始的
dependencies {
.........
implementation 'com.github.bumptech.glide:glide:4.8.0'
.........
}
我已经加了一句
implementation 'com.android.support:design:26.1.0'
这和Glide支持库有些矛盾
解决方案:删除或降级您的Glide支持版本
implementation 'com.github.bumptech.glide:glide:4.0.0'
这与我遇到的问题的原因不同。。。当我得到一个解决方案时,我会发布我的想法there@JMRboosties我的经验是,这个错误是由于lib文件夹中重复的jar文件造成的。你的情况不是这样吗?谢谢,解决了。有两个相同的sup库副本会导致错误,我想解决方案和注释的.ty为我节省了很多时间!这是可行的,但我必须做一个重建项目来消除错误。你是说minSdkVersion还是targetSdkVersion?我是说builder的sdk版本。请看:项目结构->模块->模块SDKSounds good。假设您可以在Eclipse中使用Gradle,尽管我从未尝试过。无论如何,我也处于类似的位置——我在Android Studio中使用Gradle——我的队友都没有。但我发现我仍然可以使用它而不会与其他人发生冲突。解决方案有效,我在使用okhttp-2.5.0.jar时遇到了问题。然后完成了项目建设的步骤。你花了三天的时间试图弄清楚到底发生了什么,结果救了我的命。看到谷歌工程师没有采取任何措施来减轻我们的痛苦,这简直令人恼火。
implementation 'com.android.support:design:26.1.0'
implementation 'com.github.bumptech.glide:glide:4.0.0'