Android Gradle插件从3.1.4更新到3.2.0导致TaskExecutionException异常
当我将gradle插件从3.1.4升级到3.2.0时,我面临以下错误。我所做的:Android Gradle插件从3.1.4更新到3.2.0导致TaskExecutionException异常,android,gradle,Android,Gradle,当我将gradle插件从3.1.4升级到3.2.0时,我面临以下错误。我所做的: 取消选中即时运行 添加到local.properties org.gradle.jvmargs=-Xmx2048m-XX:MaxPermSize=512m-XX:+HeapDumpOnOutOfMemoryError-Dfile.encoding=UTF-8 失效并重新启动 清洁和建设项目 没有变化 错误: 生成失败32秒17毫秒 ... :app:transformClassesWithDexBuilderF
- 取消选中即时运行
- 添加到local.properties
org.gradle.jvmargs=-Xmx2048m-XX:MaxPermSize=512m-XX:+HeapDumpOnOutOfMemoryError-Dfile.encoding=UTF-8
- 失效并重新启动
- 清洁和建设项目
apply from: 'buildsystem/ci.gradle'
apply from: 'buildsystem/dependencies.gradle'
buildscript {
repositories {
jcenter()
mavenCentral()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
}
}
allprojects {
ext {
androidVersionCode = 15480001
android40VersionCode = 15480001
android42VersionCode = 17480001
android50VersionCode = 20480001
androidVersionName = "4.8.0"
testInstrumentationRunner = "android.support.test.runner.AndroidJUnitRunner"
testApplicationId = 'my.package'
}
}
task wrapper(type: Wrapper) {
description 'Creates the gradle wrapper.'
gradleVersion '2.14.1'
}
task clean(type: Delete) {
delete rootProject.buildDir
}
repositories {
google()
maven { url "https://maven.google.com" }
}
和我的模块级成绩文件:
apply plugin: 'com.android.application'
android {
def globalConfiguration = rootProject.extensions.getByName("ext")
flavorDimensions "flavor1", "flavor2"
publishNonDefault true
compileSdkVersion globalConfiguration.getAt("androidCompileSdkVersion")
buildToolsVersion globalConfiguration.getAt("androidBuildToolsVersion")
defaultConfig {
minSdkVersion globalConfiguration.getAt("androidMinSdkVersion")
targetSdkVersion globalConfiguration.getAt("androidTargetSdkVersion")
versionCode globalConfiguration.getAt("androidVersionCode")
versionName globalConfiguration.getAt("androidVersionName")
multiDexEnabled true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
signingConfigs {
release {
storeFile file('../keystore/my.keystore')
storePassword "PASSWORD"
keyAlias "ALIAS"
keyPassword "PASSWORD"
}
}
sourceSets.main {
jni.srcDirs = [] // This prevents the auto generation of Android.mk
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
productFlavors {
android40 {
minSdkVersion 15
versionCode globalConfiguration.getAt("android40VersionCode")
dimension "flavor1"
}
android42 {
minSdkVersion 17
versionCode globalConfiguration.getAt("android42VersionCode")
dimension "flavor1"
}
android50 {
minSdkVersion 20
versionCode globalConfiguration.getAt("android50VersionCode")
dimension "flavor1"
}
test{
dimension "flavor2"
applicationId = "my.package.test"
}
}
packagingOptions {
exclude 'LICENSE.txt'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/ASL2.0'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/LGPL2.1'
}
lintOptions {
quiet true
abortOnError false
ignoreWarnings true
disable 'InvalidPackage' //Some libraries have issues with this.
disable 'OldTargetApi'
//Lint gives this warning but SDK 20 would be Android L Beta.
disable 'IconDensities' //For testing purpose. This is safe to remove.
disable 'IconMissingDensityFolder' //For testing purpose. This is safe to remove.
}
}
repositories {
google()
maven { url "https://jitpack.io" }
maven { url "https://maven.google.com" }
}
dependencies {
def appDependencies = rootProject.ext.appDependencies
// Dépendances Google
api appDependencies.appcompatv7
api appDependencies.supportv4
api appDependencies.supportdesign
api appDependencies.multidex
api appDependencies.constLayout
api appDependencies.playLocation
// Annotations
api appDependencies.dagger
annotationProcessor appDependencies.daggerCompiler
api appDependencies.bknife
annotationProcessor appDependencies.bknifeCompiler
compileOnly appDependencies.lombok
annotationProcessor appDependencies.lombok
// Librairies externes
api appDependencies.commonsNet
api appDependencies.commonsIo
api appDependencies.altbeacon
api appDependencies.rxjava
api appDependencies.rxAndroid
api files('src/main/jniLibs/activation.jar')
api files('src/main/jniLibs/additionnal.jar')
api files('src/main/jniLibs/mail.jar')
// Projets
implementation project(':converter')
implementation project(':data')
implementation project(':zones')
}
版本文件:
androidBuildToolsVersion = "28.0.3"
androidMinSdkVersion = 15
androidTargetSdkVersion = 28
androidCompileSdkVersion = 28
appcompatv7Version = "28.0.0"
supportv4Version = "28.0.0"
androidAnnotationsVersion = '28.0.0'
supportdesignVersion = '28.0.0'
multidexVersion = "1.0.3"
constLayoutVersion = "1.1.2"
butterknifeVersion = "8.8.1"
//Libraries
daggerVersion = '2.17'
javaxAnnotationVersion = '1.0'
javaxInjectVersion = '1'
commonsNetVersion = '3.3'
commonsIoVersion = '2.4'
jLayerVersion = '1.0.1.4'
altbeaconVersion = '2+'
rxjavaVersion = '2+'
rxAndroidVersion = '2.0.1'
firebaseVersion = '16.0.1'
lombokVersion = '1.18.2'
retrofitVersion = '2.1.0'
okhttpVersion = '3.5.0'
guavaVersion = '26.0-android'
gsonVersion = '2.6.2'
converteegsonVersion = '2.4.0'
playLocationVersion = '15.0.1'
appDependencies = [
dagger : "com.google.dagger:dagger:${daggerVersion}",
daggerCompiler: "com.google.dagger:dagger-compiler:${daggerVersion}",
multidex : "com.android.support:multidex:${multidexVersion}",
appcompatv7 : "com.android.support:appcompat-v7:${appcompatv7Version}",
supportv4 : "com.android.support:support-v4:${supportv4Version}",
supportdesign : "com.android.support:design:${supportdesignVersion}",
constLayout : "com.android.support.constraint:constraint-layout:${constLayoutVersion}",
commonsNet : "commons-net:commons-net:${commonsNetVersion}",
commonsIo : "commons-io:commons-io:${commonsIoVersion}",
altbeacon : "org.altbeacon:android-beacon-library:${altbeaconVersion}",
rxjava : "io.reactivex.rxjava2:rxjava:${rxjavaVersion}",
rxAndroid : "io.reactivex.rxjava2:rxandroid:${rxAndroidVersion}",
firebase : "com.google.firebase:firebase-appindexing:${firebaseVersion}",
lombok : "org.projectlombok:lombok:${lombokVersion}",
bknife : "com.jakewharton:butterknife:${butterknifeVersion}",
bknifeCompiler: "com.jakewharton:butterknife-compiler:${butterknifeVersion}",
playLocation : "com.google.android.gms:play-services-location:${playLocationVersion}"
]
已解决-解决方案:
(感谢iGio90发行本期)
1当前正确的解决方案(推荐):lombok V1.16.18:
- lombok版本至1.16.18
- 在项目根目录中添加一个“lombok.config”文件,行为“lombok.anyConstructor.suppressConstructorProperties=true”
- 添加我的build.gradle
“compileOnly”javax.annotation:jsr250 api:1.0'
- 让所有版本更新(我的lombok版本是1.18.2,gradle 4.6,gradle插件3.2.0)
- 将以下行添加到gradle.properties:
同步时,您会看到警告“选项设置'android.enableD8.desugaring=false'是实验性的,不受支持。当前默认值为'true'”。但无论如何,在那之后,一切都会好起来李>android.enableD8.desugaring=false
经过一天的测试,由于我遇到了与您完全相同的问题,并且顶级+模块级gradle文件看起来与我的非常接近,我发现删除lombok依赖项将使其工作正常。仍然不知道为什么会发生这种情况,但看起来是龙目开发人员应该解决的问题。我还要在github上发表一篇文章 (编辑) 问题已打开,让我们等待:D
这是Android Gradle插件中的一个问题,该插件在
3.3.0-alpha01
中修复。您可以更新到最新的插件,3.3.0-alpha13
,这将解决您的问题。有关此错误发生原因的更多详细信息,请参阅。发布与此问题完全相同的应用程序级gradle文件!主题用gradle文件更新你找到解决方案了吗?主题用它的解决方案编辑谢谢,我会尝试删除Lombok依赖项,但到目前为止很难,因为我到处都在使用它:)。是的,我知道。。。。。今天我做了一个承诺,要删除它。。。。。1300行++用于getter和setter-389;-但我迫不及待地等待修复,直到我删除了lombok之后事情才开始好转:)
androidBuildToolsVersion = "28.0.3"
androidMinSdkVersion = 15
androidTargetSdkVersion = 28
androidCompileSdkVersion = 28
appcompatv7Version = "28.0.0"
supportv4Version = "28.0.0"
androidAnnotationsVersion = '28.0.0'
supportdesignVersion = '28.0.0'
multidexVersion = "1.0.3"
constLayoutVersion = "1.1.2"
butterknifeVersion = "8.8.1"
//Libraries
daggerVersion = '2.17'
javaxAnnotationVersion = '1.0'
javaxInjectVersion = '1'
commonsNetVersion = '3.3'
commonsIoVersion = '2.4'
jLayerVersion = '1.0.1.4'
altbeaconVersion = '2+'
rxjavaVersion = '2+'
rxAndroidVersion = '2.0.1'
firebaseVersion = '16.0.1'
lombokVersion = '1.18.2'
retrofitVersion = '2.1.0'
okhttpVersion = '3.5.0'
guavaVersion = '26.0-android'
gsonVersion = '2.6.2'
converteegsonVersion = '2.4.0'
playLocationVersion = '15.0.1'
appDependencies = [
dagger : "com.google.dagger:dagger:${daggerVersion}",
daggerCompiler: "com.google.dagger:dagger-compiler:${daggerVersion}",
multidex : "com.android.support:multidex:${multidexVersion}",
appcompatv7 : "com.android.support:appcompat-v7:${appcompatv7Version}",
supportv4 : "com.android.support:support-v4:${supportv4Version}",
supportdesign : "com.android.support:design:${supportdesignVersion}",
constLayout : "com.android.support.constraint:constraint-layout:${constLayoutVersion}",
commonsNet : "commons-net:commons-net:${commonsNetVersion}",
commonsIo : "commons-io:commons-io:${commonsIoVersion}",
altbeacon : "org.altbeacon:android-beacon-library:${altbeaconVersion}",
rxjava : "io.reactivex.rxjava2:rxjava:${rxjavaVersion}",
rxAndroid : "io.reactivex.rxjava2:rxandroid:${rxAndroidVersion}",
firebase : "com.google.firebase:firebase-appindexing:${firebaseVersion}",
lombok : "org.projectlombok:lombok:${lombokVersion}",
bknife : "com.jakewharton:butterknife:${butterknifeVersion}",
bknifeCompiler: "com.jakewharton:butterknife-compiler:${butterknifeVersion}",
playLocation : "com.google.android.gms:play-services-location:${playLocationVersion}"
]