错误:任务执行失败':app:transformClassesWithDexForDebug'

错误

错误:任务“:app:transformClassesWithDexForDebug”的执行失败。 /usr/lib/jvm/java-8-oracle/com.android.build.transform.api.TransformException:com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'command'/ usr / lib / jvm / java-8-oracle / bin / java''以非零的退出值1结束

我的应用程序gradle文件:

apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId 'Hidden application ID' minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" multiDexEnabled true } buildTypes { debug { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } lintOptions { disable 'InvalidPackage' } packagingOptions { exclude 'META-INF/services/javax.annotation.processing.Processor' } productFlavors { } } repositories { mavenCentral() } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:multidex:1.0.1' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' compile 'com.android.support:cardview-v7:23.1.1' compile 'com.jakewharton:butterknife:7.0.1' compile 'com.mcxiaoke.volley:library-aar:1.0.0' compile 'com.google.android.gms:play-services:8.1.0' compile 'com.facebook.android:facebook-android-sdk:4.7.0' compile 'com.googlecode.libphonenumber:libphonenumber:7.2.1' compile 'com.getbase:floatingactionbutton:1.10.1' compile 'com.android.support:preference-v7:23.1.1' } 

在debugging时,如果将minifyEnabled设置为true,则编译。 但是,那么我不能debugging我的应用程序。

我检查了这个问题: 执行谷歌login为Android的任务':app:transformClassesWithDexForDebug'的执行失败 ,但只有一个答案,实施它不能解决问题不幸。

AFAIK,错误是由于添加了太多的Gradle依赖引起的,但我可能是错的(我真的希望是错的,因为所有这些包真的很重要!)。

请帮我解决这个错误。 非常感谢!

只需纠正Google Play服务依赖关系:

您的项目中包含所有播放服务。 只添加你想要的。

例如,如果您只使用地图和g +login,则不会更改

  compile 'com.google.android.gms:play-services:8.1.0' 

 compile 'com.google.android.gms:play-services-maps:8.1.0' compile 'com.google.android.gms:play-services-plus:8.1.0' 

从文档:

在6.5之前的Google Play服务版本中,您必须将整个API包编译到您的应用程序中。 在某些情况下,这样做会使得应用程序中的方法数量(包括框架API,库方法和自己的代码)在65,536的限制之下变得更加困难。

从版本6.5开始,您可以select性地将Google Play服务API编译到您的应用中。 例如,要仅包含Google Fit和Android Wear API,请在build.gradle文件中replace以下行:
编译“com.google.android.gms:play-services:8.3.0”
用这些线:

编译“com.google.android.gms:play-services-fitness:8.3.0”
编译“com.google.android.gms:play-services-wearable:8.3.0”

整个列表可以在这里find 。

尝试

 dexOptions { javaMaxHeapSize "4g" preDexLibraries = false } 

我不知道原因。 有关preDexLibraries : https : //sites.google.com/a/android.com/tools/tech-docs/new-build-system/tips

根据@ lgdroid57:

以下资源应该可以帮助解释这段代码的作用:链接( http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.DexOptions.html )属性| 描述javaMaxHeapSize | 调用dx时设置-JXmx *值。 格式应该遵循1024M模式。 preDexLibraries | 是否要预先图书馆。 这可以提高增量构build,但干净的构build可能会变慢。

这是有关Multidex的问题。 你可以尝试删除一些jar,或者你可以尝试像这样: http : //developer.android.com/tools/building/multidex.html#mdex-gradle in app build.gradle:

  defaultConfig { ... minSdkVersion 14 targetSdkVersion 21 ... // Enabling multidex support. multiDexEnabled true } dependencies { compile 'com.android.support:multidex:1.0.0' } 

在你的清单中:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.multidex.myapplication"> <application ... android:name="android.support.multidex.MultiDexApplication"> ... </application> </manifest> 

multiDexEnabled truemultiDexEnabled truedefault config file中添加multiDexEnabled true

  defaultConfig { multiDexEnabled true } 

尝试将multiDexEnabled true添加到您的应用程序build.gradle文件。

  defaultConfig { multiDexEnabled true } 

Android Studiobuild议将Gradle插件从版本1.2.3更新到1.5.0时,我遇到了这个问题。 在其网页上 ,1.5.0似乎是一个testing版本。

老实说,我不知道版本1.5.0有什么优势,但我宁愿等到有一个稳定的版本。

当然,回到1.2.3解决了这个问题。

可能的帮助

在耗尽所有其他选项之后,试图作为绝对的最后的手段

我删除了所有的记忆棒(RAM),但一个。 现在我的记忆力减less了,但是再次运作。 我不能假装知道为什么构build过程总是发现损坏的内存,或者如果这是100%的根本原因 – 在其他方面系统运行良好。 也许这是一个尝试,好运。

不需要multitex。 对于在Android Studio 2.1中打开的“旧”项目,将Gradle插件版本从1.5.0更改为2.1.0,这对我来说是个问题。

 buildscript { dependencies { classpath 'com.android.tools.build:gradle:2.1.0' } } 

通过改变

编译“com.google.android.gms:play-services:8.1.0”

到只需要的文件,问题就可以解决了。这个问题是由于超过build.gradle文件中的文件而产生的。

我个人的解决scheme是:

build.gradle

 defaultConfig { multiDexEnabled true } dexOptions { javaMaxHeapSize "4g" } 

对于我closures所有其他的Android Studio解决了这个问题。

当我收到错误信息后,我打开了3个安卓工作室,closures了2之后,我没有收到任何错误。

无需添加任何与multiDex相关的代码!

我解决了它! 这是一个configuration和更新的集合。 将这些variables添加到build.gradle中

 android { packagingOptions { exclude 'META-INF/ASL2.0' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' } dexOptions { javaMaxHeapSize "4g" } defaultConfig { multiDexEnabled true } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } } 

然后更新到Java 8 http://tecadmin.net/install-oracle-java-8-jdk-8-ubuntu-via-ppa/和所有将被解决! 这是因为buildTools更新和新的Android工作室。 没有别的将会失败。

当我将编译任务通过SSH委托给Google Compute Engine时,我遇到了这个问题。 这个问题的本质是一个内存错误,如崩溃日志所示; 特别是在Java构build过程中,Java耗尽了虚拟内存来处理它时。

重要提示: 由于此内存错误,当gradle崩溃时,gradle守护进程将在编译任务失败后长时间运行。 任何重新尝试再次使用gradle的构build都会分配一个新的gradle守护进程。 必须确保使用 gradlew --stop 正确处理任何崩溃的实例

hs_error_pid崩溃日志指示以下解决方法:

 # There is insufficient memory for the Java Runtime Environment to continue. # Possible reasons: # The system is out of physical RAM or swap space # In 32 bit mode, the process size limit was hit # Possible solutions: # Reduce memory load on the system # Increase physical memory or swap space # Check if swap backing store is full # Use 64 bit Java on a 64 bit OS # Decrease Java heap size (-Xmx/-Xms) # Decrease number of Java threads # Decrease Java thread stack sizes (-Xss) # Set larger code cache with -XX:ReservedCodeCacheSize= 

我发现在增加虚拟机的运行资源之后,这个问题就解决了。

我有一个类似的错误。 我通过切换目录来修复它。 从我的git仓库再次克隆我的项目,将其导入到android studio并构build它。 看起来像在Android Studio生成的项目可能已经损坏时生成的目录/文件之一。 删除项目中的所有Android Studio生成的文件或者做我所做的可以解决这个问题。 希望这可以帮助。

检查build.gradle(模块:Android)对我来说固定的问题。

将其修改为可行的版本。

  android { buildToolsVersion '23.0.1' } 

面对这个问题的所有人/将来都会面对这个问题:

点击Build菜单 – > Select Build Variant – >恢复到'debug'

对模块中的debuggable进行注释:app / * debug {debuggable true} * /

转到生成菜单 – >生成签名的apk – > …. – >build立它

移动文件底部的apply plugin声明:

应用插件:“com.google.gms.google-services”

显然,我通过将所有解决scheme添加到Android清单中来解决了这个问题:

 <application ... android:name="android.support.multidex.MultiDexApplication" > ... </application> 

继构build.gradle应用程序模块

 android { ... dexOptions { javaMaxHeapSize "4g" preDexLibraries = false } ... defaultConfig { multiDexEnabled true } } 

进入生成 – >清理并再次运行你的应用程序

确保你没有使用两个版本的谷歌服务。

例如有:

 compile 'com.google.firebase:firebase-messaging:9.8.0' 

 compile 'com.google.firebase:firebase-ads:10.0.0'