首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >错误:任务':app:transformClassesWithDexForDebug‘执行失败

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

Stack Overflow用户
提问于 2015-11-15 16:45:40
回答 29查看 170.5K关注 0票数 74

The error

错误:任务':app:transformClassesWithDexForDebug‘执行失败。com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException:命令:进程‘org.gradle.process.internal.ExecException '/usr/lib/jvm/java-8-oracle/bin/java'’已完成,退出值为1

我的应用gradle文件:

代码语言:javascript
复制
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'
}

在调试时,如果我将minifyEnabled设置为true,那么它就会编译。但是,我就不能调试我的应用程序了。

我检查了另一个问题:Execution failed for task ':app:transformClassesWithDexForDebug' while implementing Google sign in for Android,但只有一个答案,不幸的是,实现它并不能解决问题。

AFAIK,这个错误是由于添加了太多的Gradle依赖项造成的,但我可能是错的(我真的希望是错的,因为所有这些包都非常重要!)

请帮助我解决此错误。非常感谢!

EN

回答 29

Stack Overflow用户

发布于 2015-11-15 17:11:46

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

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

例如,如果仅使用地图和g+登录,则更改

代码语言:javascript
复制
 compile 'com.google.android.gms:play-services:8.1.0'

代码语言:javascript
复制
compile 'com.google.android.gms:play-services-maps:8.1.0'
compile 'com.google.android.gms:play-services-plus:8.1.0'

从文档中:

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

从6.5版开始,您可以有选择地将Google Play服务app编译到您的应用程序中。例如,要仅包含Google Fit和Android Wear API,请在build.gradle文件中替换以下行:

编译'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‘

Whole list can be found here

票数 50
EN

Stack Overflow用户

发布于 2015-11-15 16:52:36

试一试

代码语言:javascript
复制
dexOptions {
    javaMaxHeapSize "4g"
    preDexLibraries = false
}

我不知道原因。关于preDexLibraries的一些事情:https://sites.google.com/a/android.com/tools/tech-docs/new-build-system/tips

根据@lgdroid57:

下面的资源将有助于解释此代码的作用: link(http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.DexOptions.html) Property | Description javaMaxHeapSize |在调用dx时设置-JXmx*值。格式应遵循1024M模式。preDexLibraries |是否对库进行预处理。这可以改进增量构建,但干净的构建可能会更慢。

票数 25
EN

Stack Overflow用户

发布于 2017-07-14 06:04:27

尝试向你的应用程序build.gradle文件添加multiDexEnabled true

代码语言:javascript
复制
  defaultConfig {
    multiDexEnabled true
}
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33717886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档