How do I resolve "Duplicate files copied in APK META-INF/*"

There is a solution if you have only one license using the name license.txt (read: all license.txt copies are identical):

packagingOptions {
   pickFirst  'META-INF/license.txt'
}

Otherwise, Google also released a Gradle plugin to manage dependencies licenses. See here. I didn't try it, but it looks like it's capable of aggregating every dependency, and even generating an activity displaying all of those licenses.


Add following into respective build.gradle file

packagingOptions {
        exclude 'META-INF/ASL2.0'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/MANIFEST.MF'
    }

I faced the same issue with my application. You need to make sure you have not added any libraries twice. If you have followed the firebase documentation https://firebase.google.com/docs/android/setup

Then you should not add firebase library inside android studio i.e. file->project structure->cloud->firebase

You have to do only one of the both, to use firebase in your android application.

At the end clean and rerun your app.


As an alternative to Marc Plano-Lesay's answer, you can also merge the files:

packagingOptions {
    merge "META-INF/license.txt"
}

Reference: Gradle API 4.2 Packaging Options