0

My app has a module (lets call it myModule) which uses a 3rd party library(lets call it 3rdParty). This 3rdParty library is an aar file that uses a video compression library(lets call it videoCompressor). And myModule is also using the same compression library with the same version.

p.s. A module can't use aar file directly, so I had to put it in the app and use it in myModule as mentioned in this post.

So here is the dependency hierarchy

app

dependencies {
    implementation(':myModule')
    implementation(':3rdParty')
    implementation 'videoCompressor:1.2.3'
}

myModule

dependencies {
    api project(':3rdParty')
    implementation 'videoCompressor:1.2.3'
}

3rdParty is an aar file and it also uses videoCompressor:1.2.3 internally.

While trying to build the project I get this error

Type com.abedelazizshe.lightcompressorlibrary.data.AtomsKt is defined multiple times: /Users/xx/Documents/xx/temp/xx/app/build/intermediates/mixed_scope_dex_archive/devDebug/out/d557fe27570a7fdcab8e1782ef61e44224719c80849bd367030f40a11145859c_1.jar:classes.dex, /Users/xx/Documents/xx/temp/xx/app/build/intermediates/mixed_scope_dex_archive/devDebug/out/23b9eb6594f48cb29b67fd834a2ea73b6ec11312577ac3867a8befdc5815129a_1.jar:classes.dex

This seems to be because there are duplicate classes from the videoCompressor library. How can this be fixed?

I tried removing videoCompressor from the app and myModule, build gets created but there is runtime crash about NoClassDefFoundError.

Ranjan
  • 1,096
  • 10
  • 22

0 Answers0