Duplicate zip entry [classes.jar:android/support/design/widget/CoordinatorLayout$Behavior.class]
I just did it like. It's working now
Solution 1
compile 'com.android.support:appcompat-v7:27.1.0'
compile 'com.android.support:support-v4:27.1.0'
compile 'com.android.support:recyclerview-v7:27.1.0'
compile 'com.android.support:design:27.1.0'
compile 'com.android.support:cardview-v7:27.1.0'
Solution 2 (NEW)
Migrate your code to AndroidX
Aside of using Project
view -> External Libraries
, I use gradle
command to output the dependencies into a txt file for searching. Use ./gradlew
On Mac and gradlew.bat
on Window.
$ ./gradlew -q :app:dependencies > dependencies.txt
In dependencies.txt
, use "Find" and type "design", for example, and look at all highlighted libraries and their version number. From some SO posts, they suggest to exclude duplicated dependencies. If a dependency is included by another one (for example, com.android.support:cardview-v7
is included by com.firebaseui:firebase-ui-auth
), we can omit that dependency from the app/build.gradle.
I fixed my project by removing these dependencies from my gradle:
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:support-vector-drawable:27.1.0'
implementation 'com.android.support:cardview-v7:27.1.0'
I keep this one (and upgrade from 27.0.2 to 27.1.0):
implementation 'com.android.support:design:27.1.0'
Add exclude to following dependencies:
implementation 'com.firebaseui:firebase-ui-auth:3.1.2', {
exclude group: 'android.arch.lifecycle', module: 'extensions'
exclude group: 'com.android.support', module: 'design'
}
implementation 'com.romandanylyk:pageindicatorview:1.0.0', {
exclude group: 'com.android.support', module: 'support-core-ui'
}
I got into the lifecycle issue after add/remove dependencies. Another SO post suggest that two different version of library was included. So, I updated the output file in step 1 and check:
+--- 'com.google.firebase:firebase-core:11.8.0'
| +--- 'android.arch.lifecycle:runtime:1.1.0'
+--- 'com.firebaseui:firebase-ui-auth:3.1.2'
| +--- 'android.arch.lifecycle:extensions:1.0.0'
By excluding android.arch.lifecycle:extensions
that solve the compile problem.