Gradle 3.0 构建错误:执行任务':app:transformClassesWithDesugarForDebug'失败。

4

将项目迁移到 'com.android.tools.build:gradle: 3.0.1'。从那时起,我一直在从Gradle获取此错误消息。

Exception in thread "main" java.lang.RuntimeException: Method code too large!
at org.objectweb.asm.MethodWriter.a(Unknown Source)
at org.objectweb.asm.ClassWriter.toByteArray(Unknown Source)
at com.google.devtools.build.android.desugar.CoreLibraryRewriter$UnprefixingClassWriter.toByteArray(CoreLibraryRewriter.java:152)
at com.google.devtools.build.android.desugar.Desugar.desugarClassesInInput(Desugar.java:403)
at com.google.devtools.build.android.desugar.Desugar.desugarOneInput(Desugar.java:326)
at com.google.devtools.build.android.desugar.Desugar.desugar(Desugar.java:280)
at com.google.devtools.build.android.desugar.Desugar.main(Desugar.java:584)

FAILED
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesWithDesugarForDebug'.

我已经多次尝试过清理项目 > 重建项目,但没有帮助。

这是我的构建配置:

apply plugin: 'com.android.application'

buildscript {
    configurations.classpath.exclude group: 'com.android.tools.external.lombok'
}

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.2'
    flavorDimensions "default"
    dexOptions {
        preDexLibraries = false
        javaMaxHeapSize "4g"
}
defaultConfig {
    applicationId "com.example.shirish"
    minSdkVersion 15
    targetSdkVersion 24
    multiDexEnabled true
    versionCode 140
    versionName "3.30"
    vectorDrawables.useSupportLibrary = true

}
lintOptions {
    checkReleaseBuilds false
    abortOnError false
}
packagingOptions {
    exclude 'META-INF/rxjava.properties'
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

buildTypes {
    debug {
        testCoverageEnabled = false
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

}
    lintOptions {
        abortOnError false
    }
}

repositories {
    maven { url "http://repo.commonsware.com.s3.amazonaws.com" }
    maven { url "https://jitpack.io" }
    maven { url "http://dl.bintray.com/pixplicity/android" }
    maven {
        url "http://s3.amazonaws.com/repo.commonsware.com"
    }
    maven { url 'https://zendesk.jfrog.io/zendesk/repo' }
    maven {
        url 'https://maven.google.com'
    }
}

sourceSets {
    main {
        java {
            exclude     'com/google/gdata/util/common/base/UnicodeEscaper$1.class'
        exclude 'com/google/gdata/util/common/base/Escaper.class'
        }
    }
}
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation files('libs/commons-net-3.5.jar')
    implementation files('libs/org.apache.http.legacy.jar')
    implementation files('libs/PayU-release.jar')
    implementation files('libs/YouTubeAndroidPlayerApi.jar')
    implementation files('libs/gdata-contacts-3.0.jar')
    implementation files('libs/gdata-client-1.0.jar')
    implementation files('libs/gdata-core-1.0.jar')

    implementation project(path:':beewisesdk', configuration:'default')

    implementation('com.google.code.gson:gson:2.8.2') {
        exclude group: 'com.google.gdata'
    }
    implementation('ch.acra:acra:4.7.0') {
        exclude group: 'org.json'
    }

    implementation group: 'com.zendesk', name: 'sdk', version: '1.9.1.1'

    implementation 'com.android.support:multidex:1.0.2'
    implementation 'com.balysv:material-ripple:1.0.1'
    implementation 'de.hdodenhof:circleimageview:2.1.0'
    implementation 'com.wang.avi:library:1.0.5'
    implementation 'com.google.guava:guava:19.0'
    implementation 'com.github.d-max:spots-dialog:0.4@aar'
    implementation 'com.iceteck.silicompressorr:silicompressor:1.1.0'
    implementation 'id.zelory:compressor:2.1.0'
    implementation 'com.github.jakob-grabner:Circle-Progress-View:v1.2.9'
    implementation 'com.android.support:recyclerview-v7:26.1.0'
    implementation 'com.android.support:cardview-v7:26.1.0'
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support:design:26.1.0'
    implementation 'com.github.ParkSangGwon:TedPicker:v1.0.10'
    implementation 'com.facebook.android:facebook-android-sdk:4.28.0'
    implementation 'com.cloudinary:cloudinary-android:1.4.2'
    implementation 'com.segment.analytics.android:analytics:4.3.1'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.squareup.retrofit2:retrofit:2.3.0'
    implementation 'com.squareup:otto:1.3.8'
    implementation 'com.jakewharton:butterknife:8.1.0'
    implementation 'com.kbeanie:multipicker:1.1.3@aar'
    implementation 'com.android.support:support-v4:26.1.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
    implementation 'com.github.delight-im:Android-AdvancedWebView:v3.0.0'
    implementation 'com.google.android.gms:play-services-auth:11.4.2'
    implementation 'com.google.android.gms:play-services-gcm:11.4.2'
    implementation 'com.google.android.gms:play-services-location:11.4.2'
    implementation 'com.google.android.gms:play-services-places:11.4.2'
    implementation 'com.beardedhen:androidbootstrap:2.3.0'
    implementation 'com.webengage:android-sdk:3.1.0'
    implementation 'com.google.android.gms:play-services-analytics:11.4.2'

    // Google Api Client library and Android extension
    implementation ('com.google.api-client:google-api-client:1.23.0') {
        exclude group: 'com.google.guava'
    }
    implementation ('com.google.api-client:google-api-client-android:1.23.0') {
        exclude group: 'com.google.guava'
    }
    //People REST API access
    implementation ('com.google.apis:google-api-services-people:v1-rev159-1.23.0') {
        exclude group: 'com.google.guava'
    }

    implementation 'com.droidninja:filepicker:1.0.8'
    implementation 'com.razorpay:checkout:1.2.1'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.8.1'
    implementation 'org.greenrobot:eventbus:3.0.0'

    implementation 'com.github.MAXDeliveryNG:slideview:1.0.1'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.google.android.gms:play-services-tagmanager:11.4.2'
    implementation 'io.reactivex.rxjava2:rxjava:2.1.3'
    implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
    implementation 'com.jakewharton.rxrelay2:rxrelay:2.0.0'
    implementation 'com.jakewharton.rxbinding2:rxbinding:2.0.0'
    implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
    implementation 'com.google.firebase:firebase-core:11.4.2'
    implementation 'com.google.firebase:firebase-perf:11.4.2'
    implementation 'com.annimon:stream:1.1.8'
    implementation 'com.google.dagger:dagger:2.8'
    implementation 'javax.inject:javax.inject:1'

    testImplementation 'junit:junit:4.12'


    annotationProcessor 'com.google.dagger:dagger-compiler:2.8'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.1.0'
    implementation 'javax.annotation:jsr250-api:1.0'
}


android { sourceSets { main { java.srcDirs = ['src/main/java', 'app/model'] } } }

android { sourceSets { main { res.srcDirs = ['src/main/res', 'src/main/res/xml'] } } }
android {
sourceSets { main { res.srcDirs = ['src/main/res', 'src/main/res/anim'] } }
}
apply plugin: 'com.google.gms.google-services'

请告诉我是否需要更多细节。我已经尝试了所有与这个问题相关的SO问题,但没有什么起作用。需要对这个问题有一个新的视角。我还在顶层build.gradle中包含依赖项。
dependencies {

    classpath 'com.android.tools.build:gradle:3.0.1'
    classpath 'com.google.gms:google-services:3.1.1'
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

同时,在implementation 'com.android.support:recyclerview-v7:26.1.0'处,我收到了警告,提示要使用相同的版本。正如您在我的gradle文件中看到的,所有支持依赖项都是同一个版本。


你可以分享一下你的代码吗? - Ramesh sambu
@R2R 我已经添加了两个 gradle.build 文件。 - Shirish Kadam
关闭项目,从应用程序位置删除.idea文件夹,然后在Android Studio中打开此项目。 - jakir hussain
@blazsolar 我也尝试过了。清理成功了。但是执行仍然失败,出现了相同的错误信息。 - Shirish Kadam
@WahibUlHaq 不,这个问题仍然存在且未解决。 - Shirish Kadam
显示剩余4条评论
2个回答

0

使用Android Studio 3.1及其构建视图后,我开始收到更全面的错误信息Multiple dex files define Lorg/apache/http/Header;。因此,我检查了类org.apache.http.Header的使用情况,发现我有多个apache.http库,删除implementation files('libs/org.apache.http.legacy.jar')后,构建成功。


0

更新 Gradle 版本:

Android 插件 3.0.0 需要 Gradle 版本 4.1 或更高版本。如果您正在使用 Android Studio 3.0 或更高版本打开现有项目,请按照提示自动更新现有项目到兼容的 Gradle 版本。

如需手动更新 Gradle,请编辑 gradle-wrapper.properties 中的 URL 如下:

distributionUrl=\
 https\://services.gradle.org/distributions/gradle-4.1-all.zip

应用插件

如果您正在使用 Android Studio 3.0 或更高版本打开现有项目, 按照提示自动更新您的项目到最新版本的 Android 插件。要手动更新您的项目,请在项目级别的 build.gradle 文件中包含 Maven 存储库并更改插件版本,如下所示:

buildscript {
   repositories {
    ...
    // You need to add the following repository to download the
    // new plugin.
    google()
}

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

}

检查 Gradle 版本:文件 > 项目结构 > 项目

还可以查看这个:
https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html

enter image description here


1
请仔细阅读问题,所有这些迁移步骤都已执行。错误是在执行“app”模块时遇到的。这个答案没有任何贡献解决方案。 - Shirish Kadam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接