0

I have a top level build.gradle file that references sub projects, including an android application. Each sub-project seems to build fine individually, but when I get to the task of MyAndroidApp:transformDexArchiveWithDexMergerForRelease, it fails to merge all the intermediate jars.

I tried setting multiDexEnabled true, but that seems to have no effect.

Error:

* What went wrong:
Execution failed for task ':MyAndroidApp:transformDexArchiveWithDexMergerForRelease'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: C:\Projects\proj_root\MyAndroidApp\build\intermediates\transforms\dexBuilder\release\32, C:\Projects\proj_root\MyAndroidApp\build\intermediates\transforms\externalLibsDexMerger\release\0, C:\Projects\proj_root\MyAndroidApp\build\intermediates\transforms\dexBuilder\release\18.jar, C:\Projects\proj_root\MyAndroidApp\build\intermediates\transforms\dexBuilder\release\19.jar, C:\Projects\proj_root\MyAndroidApp\build\intermediates\transforms\dexBuilder\release\20.jar, C:\Projects\proj_root\MyAndroidApp\build\intermediates\transforms\dexBuilder\release\21.jar, C:\Projects\proj_root\MyAndroidApp\build\intermediates\transforms\dexBuilder\release\22.jar, C:\Projects\proj_root\MyAndroidApp\build\intermediates\transforms\dexBuilder\release\23.jar, C:\Projects\proj_root\MyAndroidApp\build\intermediates\transforms\dexBuilder\release\24.jar, C:\Projects\proj_root\MyAndroidApp\build\intermediates\transforms\dexBuilder\release\25.jar, C:\Projects\proj_root\MyAndroidApp\build\intermediates\transforms\dexBuilder\release\26.jar, C:\Projects\proj_root\MyAndroidApp\build\intermediates\transforms\dexBuilder\release\27.jar, C:\Projects\proj_root\MyAndroidApp\build\intermediates\transforms\dexBuilder\release\28.jar, C:\Projects\proj_root\MyAndroidApp\build\intermediates\transforms\dexBuilder\release\29.jar, C:\Projects\proj_root\MyAndroidApp\build\intermediates\transforms\dexBuilder\release\30.jar, C:\Projects\proj_root\MyAndroidApp\build\intermediates\transforms\dexBuilder\release\31.jar

Caused by: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException:

top level build.gradle:

apply plugin: 'java'

buildscript {
    repositories {
        // google MUST be first for some reason (lint tools related)
        // https://stackoverflow.com/questions/46972122/could-not-find-com-android-tools-lintlint-gradle-android-studio-3
        google()
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'
        classpath 'com.github.jengelman.gradle.plugins:shadow:5.1.0'
    }
}

subprojects {
    repositories {
        google()
        mavenCentral()
        jcenter()
    }
    // print test results
    tasks.withType(Test) {
        afterSuite { desc, result ->
            if (!desc.parent)
                println("${result.resultType} " +
                        "(${result.testCount} tests, " +
                        "${result.successfulTestCount} successes, " +
                        "${result.failedTestCount} failures, " +
                        "${result.skippedTestCount} skipped)")
        }
    }
}

// Version definitions of all of the libraries we're using.  They're defined
// here to ensure that all projects are using the same versions of common
// dependencies:
ext.libs = [
    android_sup_v4: 'com.android.support:support-v4:25.3.1',
    android_sup_appcompat_v7: 'com.android.support:appcompat-v7:25.3.1',
    android_sup_design: 'com.android.support:design:25.3.1',
    android_sup_card_v7: 'com.android.support:cardview-v7:25.3.1',
    guava: 'com.google.guava:guava:17.0',
    graph_view: 'com.jjoe64:graphview:3.1.4',
    junit: 'junit:junit:4.12',
    log4j2: 'org.apache.logging.log4j:log4j-core:2.8.2',
    mocktio: 'org.mockito:mockito-all:1.10.19'
]

top settings.gradle file (summarized):

rootProject.name = 'My Main App'

include <<various other sub projects>>

Android APp build file:

apply plugin: 'com.android.application'

repositories {
    google()
    mavenCentral()
    jcenter()
}

android {
    compileSdkVersion 24

    // current build tools version"
    buildToolsVersion "28.0.3"
    defaultConfig {
        multiDexEnabled true

    }

    lintOptions {
        abortOnError false
    }
}


dependencies {
    dependencies {
        compile project(':CoreApp.SubProj')
    }
}
Stealth Rabbi
  • 10,156
  • 22
  • 100
  • 176

2 Answers2

0

Have you tried with implementing the library ?

implementation 'com.android.support:multidex:1.0.3'
Ashish
  • 6,791
  • 3
  • 26
  • 48
-1

add this to, app/build.gradle:

android {
    defaultConfig {
       multiDexEnabled true
    }
}
Ronak Ukani
  • 603
  • 5
  • 20