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')
}
}