'Unsatisfied dependency for com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay
In order to remove the PLAY INSTALL REFERRER API permission from my app, I've removed the com.google.firebase:firebase-core:17.2.2 dependency from Gradle, but at runtime, I get this error log:
java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: com.google.firebase.components.MissingDependencyException: Unsatisfied dependency for component Component<[class com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay]>{2, type=0, deps=[Dependency{anInterface=class com.google.firebase.FirebaseApp, type=required, direct=true}, Dependency{anInterface=interface com.google.firebase.analytics.connector.AnalyticsConnector, type=required, direct=true}, Dependency{anInterface=class com.google.firebase.inappmessaging.FirebaseInAppMessaging, type=required, direct=true}]}: interface com.google.firebase.analytics.connector.AnalyticsConnector
at android.app.ActivityThread.installProvider(ActivityThread.java:7209)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:6693)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6594)
at android.app.ActivityThread.-wrap2(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:108)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
Caused by: com.google.firebase.components.MissingDependencyException: Unsatisfied dependency for component Component<[class com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay]>{2, type=0, deps=[Dependency{anInterface=class com.google.firebase.FirebaseApp, type=required, direct=true}, Dependency{anInterface=interface com.google.firebase.analytics.connector.AnalyticsConnector, type=required, direct=true}, Dependency{anInterface=class com.google.firebase.inappmessaging.FirebaseInAppMessaging, type=required, direct=true}]}: interface com.google.firebase.analytics.connector.AnalyticsConnector
at com.google.firebase.components.ComponentRuntime.validateDependencies(com.google.firebase:firebase-components@@16.0.0:170)
at com.google.firebase.components.ComponentRuntime.processInstanceComponents(com.google.firebase:firebase-components@@16.0.0:89)
at com.google.firebase.components.ComponentRuntime.<init>(com.google.firebase:firebase-components@@16.0.0:73)
at com.google.firebase.FirebaseApp.<init>(com.google.firebase:firebase-common@@19.3.0:418)
at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@19.3.0:300)
at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@19.3.0:268)
at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@19.3.0:253)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(com.google.firebase:firebase-common@@19.3.0:51)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1921)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1896)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(com.google.firebase:firebase-common@@19.3.0:45)
at android.app.ActivityThread.installProvider(ActivityThread.java:7206)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:6693)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6594)
at android.app.ActivityThread.-wrap2(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:108)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
In my app I use firebase services for only the following reasons:
- Push notification to the users
- Write and read data from Firebase database
- Display App message dialog (Inappmessaging-Display)
Gradle:
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.exifinterface:exifinterface:1.1.0'
implementation 'com.android.support:support-annotations:28.0.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.multidex:multidex:2.0.1'
annotationProcessor 'androidx.annotation:annotation:1.1.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'cn.ezandroid:EZFilter:2.0.9'
implementation 'jp.co.cyberagent.android:gpuimage:2.0.4'
implementation 'com.daimajia.easing:library:2.1@aar'
implementation 'com.daimajia.androidanimations:library:2.3@aar'
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
implementation 'com.github.bumptech.glide:glide:4.11.0'
implementation 'com.github.jkwiecien:EasyImage:2.1.1'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
testImplementation 'junit:junit:4.13'
implementation 'com.github.chrisbanes:PhotoView:2.3.0'
implementation 'de.hdodenhof:circleimageview:3.0.2'
implementation 'com.alexvasilkov:gesture-views:2.5.2'
implementation('com.github.christophesmet:android_maskable_layout:v1.3.1') {
exclude group: 'com.intellij', module: 'annotations'
}
implementation 'com.github.duanhong169:checkerboarddrawable:1.0.2'
implementation 'com.github.AKiniyalocts:imgur-api:-SNAPSHOT'
implementation 'com.mikhaellopez:circularimageview:4.1.1'
implementation 'com.jaredrummler:material-spinner:1.3.1'
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.19'
//implementation 'com.google.firebase:firebase-core:17.2.2'
implementation 'com.google.firebase:firebase-database:19.2.0'
implementation 'com.firebaseui:firebase-ui-database:5.0.0'
implementation 'com.google.firebase:firebase-inappmessaging-display:19.0.3'
implementation 'com.google.android.gms:play-services-vision:19.0.0'
implementation 'com.google.android.gms:play-services-ads:18.3.0'
implementation 'com.google.firebase:firebase-messaging:20.1.0'
implementation 'org.apache.commons:commons-lang3:3.9'
implementation 'org.apache.commons:commons-collections4:4.4'
implementation 'com.github.nanchen2251:CompressHelper:1.0.5'
implementation 'com.google.code.gson:gson:2.8.6'
implementation 'uz.shift:colorpicker:0.5@aar'
implementation 'dev.dworks.libs:volleyplus:0.1.4'
implementation 'com.waynejo:androidndkgif:0.3.3'
implementation 'com.yanzhenjie:mediascanner:1.0.3'
implementation 'io.github.inflationx:viewpump:2.0.3'
implementation 'io.github.inflationx:calligraphy3:3.1.1'
implementation 'com.takwolf.android:aspectratio:0.3.0'
}
apply plugin: 'com.google.gms.google-services'
Thank you for your help in advance
Solution 1:[1]
I tried adding this to the app/build.gradleit worked for me.
implementation 'com.google.firebase:firebase-core:17.0.0'
Solution 2:[2]
This worked for me
implementation 'com.google.firebase:firebase-analytics:17.4.3'
Solution 3:[3]
Unpacking apk found less configuration? add config worked for me.
<service android:directBootAware="true" android:exported="false" android:name="com.google.firebase.components.ComponentDiscoveryService">
<meta-data android:name="com.google.firebase.components:com.google.firebase.messaging.FirebaseMessagingRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
<meta-data android:name="com.google.firebase.components:com.google.firebase.analytics.connector.internal.AnalyticsConnectorRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
<meta-data android:name="com.google.firebase.components:com.google.firebase.iid.Registrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
<meta-data android:name="com.google.firebase.components:com.google.firebase.datatransport.TransportRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
<meta-data
android:name="com.google.firebase.components:com.google.firebase.installations.FirebaseInstallationsRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar" />
</service>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Eduardo |
| Solution 2 | Mohamed Slimane |
| Solution 3 |
