Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

2 files found with path 'META-INF/LGPL2.11'

Does anybody knows how to debug this? I cannot figure out which libraries are generating the problem.

Side note, it only happens when I try to run Android tests so my best guess is it's related to some testing library.


    testImplementation "androidx.room:room-testing:$version_room"
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
    androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.4.0'
    // Compose Tests
    androidTestImplementation "androidx.compose.ui:ui-test-junit4:$version_compose"
    debugImplementation "androidx.compose.ui:ui-test-manifest:$version_compose"
    // Hilt test
    androidTestImplementation "com.google.dagger:hilt-android-testing:$version_hilt"
    kaptAndroidTest "com.google.dagger:hilt-android-compiler:$version_hilt"
    debugImplementation 'androidx.fragment:fragment-testing:1.3.6'
Execution failed for task ':app:mergeDebugAndroidTestJavaResource'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.MergeJavaResWorkAction
   > 2 files found with path 'META-INF/LGPL2.1' from inputs:
      - /home/lbenevento/.gradle/caches/transforms-3/1e2dfa6057fe4e701d175f47b1099efa/transformed/jetified-jna-platform-5.5.0.jar
      - /home/lbenevento/.gradle/caches/transforms-3/405542266c1c406c39ff1a20cb26a332/transformed/jetified-jna-5.5.0.jar
     Adding a packagingOptions block may help, please refer to
     https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.PackagingOptions.html
     for more information

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeDebugAndroidTestJavaResource'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:187)
    at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:268)
...

This is the full error: https://pastebin.com/74cLGMR9

like image 405
Lorenzo Benevento Avatar asked Oct 28 '21 23:10

Lorenzo Benevento


3 Answers

This happened for me when I added androidTestImplementation "androidx.compose.ui:ui-test-junit4:$version_compose".

Referring to the advice in this posting, I decided to use pickFirst as opposed to exclude.

According to the PackagingOptions documentation, pickFirst will allow for the first occurrence of the file to be packaged with the APK, whereas exclude would exclude all occurrences of the file.

This ended up working for me:

android {
    packagingOptions {
        pickFirst 'META-INF/AL2.0'
        pickFirst 'META-INF/LGPL2.1'
    }
}
like image 98
JHowzer Avatar answered Sep 27 '22 13:09

JHowzer


So the exclude and pickFirst already deprecated in kotlin DSL. put the following in your build.gradle.kts:

android {   
    packagingOptions {
        resources.excludes.apply {
            add("META-INF/LICENSE")
            add("META-INF/*.properties")
            add("META-INF/AL2.0")
            add("META-INF/LGPL2.1")
        }
    }
}
like image 27
Mohsents Avatar answered Sep 28 '22 13:09

Mohsents


This worked out for a similar issue for me:

android {
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/*.properties'
        exclude 'META-INF/AL2.0'
        exclude 'META-INF/LGPL2.1'
    }
}
like image 30
Alejandro H. Cruz Avatar answered Sep 28 '22 13:09

Alejandro H. Cruz