Android Studio:Gradle – 构build失败 – 任务执行失败':dexDebug'
错误:
Gradle: Execution failed for task ':vertretungsplan:dexDebug'. > Failed to run command: P:\Android-Studio\sdk\build-tools\18.0.1\dx.bat --dex --output P:\Projekte\VertretungsplanProject\vertretungsplan\build\libs\vertretungsplan-debug.dex P:\Projekte\VertretungsplanProject\vertretungsplan\build\classes\debug P:\Projekte\VertretungsplanProject\vertretungsplan\build\dependency-cache\debug P:\Android-Studio\sdk\extras\android\m2repository\com\android\support\support-v4\18.0.0\support-v4-18.0.0.jar P:\Projekte\VertretungsplanProject\vertretungsplan\libs\commons-io-2.4.jar P:\Projekte\VertretungsplanProject\vertretungsplan\build\exploded-bundles\VertretungsplanProjectLibrariesActionbarsherlockUnspecified.aar\classes.jar Error Code: 2 Output: trouble processing: bad class file magic (cafebabe) or version (0033.0000) ...while parsing de/MayerhoferSimon/Vertretungsplan/LoginActivity$2.class ...while processing de/MayerhoferSimon/Vertretungsplan/LoginActivity$2.class trouble processing: bad class file magic (cafebabe) or version (0033.0000) ...while parsing de/MayerhoferSimon/Vertretungsplan/MainActivity$1.class ...while processing de/MayerhoferSimon/Vertretungsplan/MainActivity$1.class trouble processing: bad class file magic (cafebabe) or version (0033.0000) ...while parsing de/MayerhoferSimon/Vertretungsplan/YQL/YqlVplanParser.class ...while processing de/MayerhoferSimon/Vertretungsplan/YQL/YqlVplanParser.class 3 warnings UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dx.util.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:592) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:550) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:531) at com.android.dx.merge.DexMerger.mergeDexBuffers(DexMerger.java:168) at com.android.dx.merge.DexMerger.merge(DexMerger.java:186) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:300) at com.android.dx.command.dexer.Main.run(Main.java:232) at com.android.dx.command.dexer.Main.main(Main.java:174) at com.android.dx.command.Main.main(Main.java:91)
项目结构:
build.gradle(actionbarsherlock)
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android-library' dependencies { compile 'com.android.support:support-v4:18.0.0' } android { compileSdkVersion 18 buildToolsVersion "18.0.1" defaultConfig { minSdkVersion 8 targetSdkVersion 11 } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] res.srcDirs = ['res'] } } }
build.gradle(vertretungsplan)
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android' dependencies { compile files('libs/commons-io-2.4.jar') compile project(':libraries:actionbarsherlock') } android { compileSdkVersion 18 buildToolsVersion "18.0.1" defaultConfig { minSdkVersion 8 targetSdkVersion 11 } }
settings.gradle
include ':vertretungsplan', ':libraries:actionbarsherlock'
我该如何解决这个错误?
正确的答案是,你的一些jar文件不能编译。 你应该进入你的项目中的build.gradle文件,并查看你的依赖关系。
如果你只是导入一些jar文件,你可以尝试删除它们,并一次添加一个。 这将帮助您确定哪一个导致错误。
就我而言,我是这样做的,当我导入最后一个时,应用程序编译。 所以我认为真正的问题是我一次导入太多。 但现在一切正常。
我忽然遇到了同样的问题,没有什么值得注意的变化。
我通过删除app/build
目录解决了这个问题,并让gradle构build了新的项目。
您必须检查是否再次input相同的JAR。 就我而言,在一个jar里面有一个类被另一个jar包导入。 所以只要检查在任何lib / class文件是否被包括在整个项目两次!
当我尝试在eclipse中使用Java JRE 1.8编译utils库jar时,我得到了同样的错误,并在Android Studio 1.1.0的/ libs /中使用它。
我有我的Android Studio设置为使用JDK1.8.0。
我把我的Eclipse切换到JRE 1.7工作,错误被修复了。 Eclipse:Window-> Preferences-> Java tab-> Compiler – > Compliance level 1.7。 它很可能会提示您将JRE系统库切换到jdk1.7.x_x。
您可能需要确保在导出时取消选中“压缩jar”。 我还没有testing过它是否有效果。 我怀疑这是相关的。
我也有同样的问题。 在我的情况下,重新启动后,问题开始。 我closures了我的应用程序,然后我closures了Android Studio(在我的情况V1.1.0),最后正常关机。 之后,我修改了一个java文件来添加一个RadioGroup对象,然后出现了这个问题。
我解决了我的问题,只是在我的Gradleconfiguration文件中更改'1'的简单'0',因为问题的根本原因是在Gradle执行过程中产生的。 以前我曾经有版本'1.0.0',然后我把它改为'1.1.0',如图片中所述。
Gradleconfiguration的位置改变了
我从(文件 – >设置 – > Gradle – >实验
问题不在于Execution failed for task ':dexDebug'
如果你看上面的红色显示的错误,你会看到这一点
要永久解决这个问题,只需在build.gradle
文件中添加这些行build.gradle
android { dexOptions { jumboMode = true } }
进一步的细节检查这个问题: 在这里
确保您的AndroidManifest文件在清单节点中包含一个包名称。 设置包名解决了这个问题。
ANDROID STUDIO用户试试这个:
您需要将以下内容添加到您的gradle文件相关性中:
compile 'com.android.support:multidex:1.0.0'
然后将下面的行(multidex支持应用程序)添加到清单的application
标记中:
android:name="android.support.multidex.MultiDexApplication"
可以通过添加解决这个问题
compile 'com.android.support:support-v4:18.0.0'
到vertretungsplan build.gradle中的依赖关系,编译然后删除这行并重新编译。
现在它工作
我有同样的问题,你应该这样做:
File -> Invalidate Caches / Restart
我有这个问题,因为我试图使用支持库和appcompat:
dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' compile 'com.google.android.gms:play-services:8.3.0' }
我删除支持库并更改为旧版本后,编译:
dependencies { compile fileTree(dir: 'libs', include: '*.jar') /*compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1'*/ compile 'com.android.support:appcompat-v7:22.2.0' compile 'com.android.support:design:22.2.0' compile 'com.google.android.gms:play-services:8.3.0' }
我有两个不兼容的依赖关系。
下面的依赖关系导致了错误。
compile 'com.google.android.gms:play-services-fitness:8.3.0' compile 'com.google.android.gms:play-services-wearable:8.4.0'
通过改变适应依赖到版本8.4.0我能够运行应用程序。
compile 'com.google.android.gms:play-services-fitness:8.4.0' compile 'com.google.android.gms:play-services-wearable:8.4.0'
我发现一个非常有趣的问题与Android Studio和微软升级到Web浏览器。 我“愚蠢”升级到ie的最新版本。 当然,微软以无限的智慧知道如何处理安全问题。 当我试图编译我的应用程序时,我不断收到错误Gradle – 构build失败 – 任务执行失败。 看在堆栈中,我看到它没有识别java.exe的path。 我发现这很奇怪,因为我前一天才能编译。 我将JAVA_HOME添加到了系统的环境variables中,closures了Android Studio并重新打开了它。 低看,如果防火墙唠叨屏幕没有popup询问我是否想要所有的jave.exe通过。
什么集群!
(这可能是错误的线程,因为你的问题似乎更具体,但这是我在search问题的关键字时发现的线索)
尽pipe所有好的提示,唯一帮助我,我想分享以防万一,如果一切都不起作用:
删除主目录中的.gradle目录,并通过Android Studio为您重新构build/重新下载。
修复了各种奇怪的错误,通过重新安装Android Studio本身和SDK都无法修复。
从Eclipse IDE导入后,原因可能是重复的库。
dependencies { compile 'com.github.japgolly.android:svg-android:2.0.5' compile 'com.google.android.gms:play-services:+' compile 'com.android.support:appcompat-v7:21.0.3' compile files('libs/androidannotations-api-2.7.1.jar') compile files('libs/androidasync-2.1.2.jar') //compile files('libs/google-play-services.jar') compile files('libs/universal-image-loader-1.8.2.jar')}
我有同样的问题,评论后:
//compile files('libs/google-play-services.jar')
该应用程序没有错误。
我面临同样的问题。解决这个问题。 进入actionbarsherlock – >模块设置 – >依赖关系。取消支持v4库。在左下方有一个加号button,从那里添加1库依赖项(Select support-v4)。 让Gradle重新同步并清理一次完成的项目。
这里的许多答案都是试错法,以find重复的依赖关系,但是如果从Execution failed for task ':app:dexDebug'.
只是稍微向上滚动一下Execution failed for task ':app:dexDebug'.
它会给你一个暗示重复
。
在我的情况下,我有以下错误:
UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define L/com/parse/AbstractQueryController$1; ... ... ... Execution failed for task ':app:dexDebug'.
所以我知道,为了解决这个错误,我需要find定义parse.AbstractQueryController
的重复依赖关系
在我的情况下,我有两个导入的模块在两个不同的Parse库中加载。 让我的项目只加载一个固定我的问题。
当我的一个类文件中的包被拼写错误时,我也遇到了这个错误。 这些答案中的很多立即跳转到Jar文件,但我也会检查,以确保您的包拼写正确。
只需添加build.gradle
编译'com.parse.bolts:bolts-android:1. +'
编译'com.parse:parse-android:1.11.0'
并将项目与Gradle文件同步 但是不要在libs中添加parsingJAR 🙂 OKK
如果您也使用Dagger
或Butterknife
,则应该将guava作为依赖项添加到您的build.gradle
主文件(如classpath)中:
com.google.guava:guava:20.0
另一方面,如果您在Gradle守护进程中遇到radle
问题,您可以增加添加到您的radle
文件中:
dexOptions { javaMaxHeapSize "4g" }
在我的情况下,我做了Build > Clean Project
,它的工作!
使用Build in Menu Bar清理项目可用于Android Studio中的许多错误场景,所以在这种情况下也是如此。