15

I have updated my Android studio to 3.0 and then he asked to upgrade to 'com.android.tools.build:gradle:3.0.0'

everything went well until i decided to run my project and it's giving me this Error

Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.

More than one file was found with OS independent path 'META-INF/ASL2.0'

My app gradle

   android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"
    useLibrary 'org.apache.http.legacy'
    defaultConfig {
        applicationId "com.test.demo"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}'

My Library gradle

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"
    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_6
            targetCompatibility JavaVersion.VERSION_1_6
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
    }
}
Anthony
  • 571
  • 1
  • 4
  • 20
  • Possible duplicate of [More than one file was found with OS independent path 'META-INF/LICENSE'](https://stackoverflow.com/questions/44342455/more-than-one-file-was-found-with-os-independent-path-meta-inf-license) – Kaibo Nov 01 '19 at 12:59

4 Answers4

34

You should add to application build.gradle your packagingOptions:

packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/ASL2.0'
}
DeKaNszn
  • 2,720
  • 3
  • 26
  • 26
6

Try this first before you try other methods.

first:

check if you have set this in you build.gradle->dependencies

implementation fileTree(include: ['*.jar'], dir: 'libs')

if you've set this in you build.gradle file then check for this too if you tried to import libraries from your libs directory:

implementation files('libs/...')

if you have this too in your build.gradle file, please remove it or comment it out, because you are trying to re-import the library again which result is that error.

5

Simply adding below code solves the problem

packagingOptions {
    pickFirst  'META-INF/*'
}
Ercan
  • 2,601
  • 22
  • 23
0

You can add to the packagingOptions block with in the android block in your application build.gradle,

android {
    compileSdkVersion 29
    defaultConfig {
        applicationId "abcd.efgh.com.x"
        minSdkVersion 22
        targetSdkVersion 29
        versionCode 29
        versionName "1.9.2"
    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
    }
}
KARTHIK MB
  • 11
  • 4