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文件:
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依赖项造成的,但我可能是错的(我真的希望是错的,因为所有这些包都非常重要!)
请帮助我解决此错误。非常感谢!
发布于 2015-11-15 17:11:46
只需纠正Google play服务的依赖关系:
您正在将所有播放服务包含在项目中。只添加你想要的。
例如,如果仅使用地图和g+登录,则更改
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'
从文档中:
在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‘
发布于 2015-11-15 16:52:36
试一试
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 |是否对库进行预处理。这可以改进增量构建,但干净的构建可能会更慢。
发布于 2017-07-14 06:04:27
尝试向你的应用程序build.gradle
文件添加multiDexEnabled true
。
defaultConfig {
multiDexEnabled true
}
https://stackoverflow.com/questions/33717886
复制相似问题