androidgradlebuild.gradleandroid-studio-3.0android-gradle-3.0

Gradle 3.0 Build Error : Execution failed for task ':app:transformClassesWithDesugarForDebug'


Migrated the project to 'com.android.tools.build:gradle:3.0.1'. Since then I have been getting this error from 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'.

I have tried Clean Project > Rebuild Project multiple times, it does not help.

Here is my build config:

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'

Please, let me know if any more details are required. I have tried all the SO questions regarding this issue, nothing works. Need a fresh perspective on this problem. I am also including the dependencies at top-level 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
}

Also, at implementation 'com.android.support:recyclerview-v7:26.1.0' I am getting a warning to use the same version and as you can see in my gradle all support dependencies are the same version.


Solution

  • With Android Studio 3.1 and its build view I started getting a more comprehensive error Multiple dex files define Lorg/apache/http/Header;. Hence I checked the usage of the Class org.apache.http.Header which led me to understand that I had multiple apache.http libs and after removing implementation files('libs/org.apache.http.legacy.jar') the build worked.