I get duplicate classes error after adding dialogflow dependency to my app which uses firebase.
tried downgrading both dialogflow and firebase dependencies, also tried
"implementation('com.google.cloud:google-cloud-dialogflow:0.98.0-alpha'){
exclude group: 'com.google.api.grpc'
exclude group: 'com.google.protobuf'
}"
to exclude the duplicated classes. None of which worked!
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.3'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.google.android.material:material:1.0.0'
implementation 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
implementation 'com.google.firebase:firebase-core:17.0.0'
implementation 'com.google.firebase:firebase-auth:18.0.0'
implementation 'com.google.firebase:firebase-database:18.0.0'
implementation 'com.google.firebase:firebase-firestore:20.1.0'
implementation "com.github.VaibhavLakhera:Circular-Progress-View:0.1.2"
implementation 'com.github.CardinalNow:Android-CircleProgressIndicator:v0.2'
implementation 'ai.api:sdk:2.0.7@aar'
implementation 'ai.api:libai:1.6.12'
implementation 'com.google.cloud:google-cloud-dialogflow:0.98.0-alpha'
implementation 'io.grpc:grpc-okhttp:1.21.0'
implementation 'com.google.apis:google-api-services-oauth2:v1-rev145-1.25.0'
implementation 'com.google.apis:google-api-services-dialogflow:v2-rev80-1.25.0'
implementation "com.andkulikov:transitionseverywhere:2.0.0-beta01"
}
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.jakewharton.butterknife'
Error:
Duplicate class com.google.api.Advice found in modules classes.jar (com.google.firebase:protolite-well-known-types:17.0.0) and proto-google-common-protos-1.16.0.jar (com.google.api.grpc:proto-google-common-protos:1.16.0) Blockquote
I was able to exclude the duplicate classes with the following method:
android {
...
configurations {
implementation.exclude module:'proto-google-common-protos'
implementation.exclude module:'protolite-well-known-types'
implementation.exclude module:'guava'
implementation.exclude module:'protobuf-lite'
}
}
But it caused the app to crash at launch producing this error:
java.lang.ClassNotFoundException: Didn't find class "com.google.common.base.Preconditions"
To exclude the duplicate classes that's causing the problem, post the following code into your build.gradle (app module) file):
android {
...
configurations {
implementation.exclude module:'proto-google-common-protos'
implementation.exclude module:'protolite-well-known-types'
implementation.exclude module:'protobuf-lite'
}
}
In my previous implementation i excluded guava module which is what caused the app crash. luckily leaving it in didn't result in any duplicate classes
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With