Unable to get provider com.google.mlkit.common.internal.MlKitInitProvider

See original GitHub issue

We recently migrated from firebase-ml-vision -> mlkit:barcode-scanning and have started to see crashes on few devices. We do not use Dynamic modules.

Devices moto e6 Andoird 9 Galaxy S9+ Android 10

Dependency com.google.mlkit:barcode-scanning:16.1.1

Stacktrace

Fatal Exception: java.lang.RuntimeException: Unable to get provider com.google.mlkit.common.internal.MlKitInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.mlkit.common.internal.MlKitInitProvider" on path: DexPathList[ ... ]
       at android.app.ActivityThread.installProvider(ActivityThread.java:6659)
       at android.app.ActivityThread.installContentProviders(ActivityThread.java:6201)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6109)
       at android.app.ActivityThread.access$1200(ActivityThread.java:213)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:215)
       at android.app.ActivityThread.main(ActivityThread.java:6939)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:870)
Caused by java.lang.ClassNotFoundException: Didn't find class "com.google.mlkit.common.internal.MlKitInitProvider" on path: DexPathList[ ... ]
       at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
       at android.app.AppComponentFactory.instantiateProvider(AppComponentFactory.java:121)
       at androidx.core.app.CoreComponentFactory.instantiateProvider(CoreComponentFactory.java:67)
       at android.app.ActivityThread.installProvider(ActivityThread.java:6643)
       at android.app.ActivityThread.installContentProviders(ActivityThread.java:6201)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6109)
       at android.app.ActivityThread.access$1200(ActivityThread.java:213)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:215)
       at android.app.ActivityThread.main(ActivityThread.java:6939)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:870)

Issue Analytics

  • State:open
  • Created 2 years ago
  • Comments:9

github_iconTop GitHub Comments

3reactions
AxonDragonScalecommented, Oct 6, 2021

To

To fix this issue with dynamic feature modules, add implementation ‘com.google.mlkit:barcode-scanning:16.2.0’ to both build.gralde files in feature module and the base app module

If you are using ML Kit features in a dynamic feature module, please follow this guide to add com.google.mlkit:playstore-dynamic-feature-support:16.0.0-beta1 into your app’s base module’s gradle file and add the feature’s sdk dependency into the feature module’s dependency.

After adding this dependency, the release builds work fine, but getting the below on debug build

    java.lang.RuntimeException: Unable to get provider com.google.mlkit.common.internal.MlKitInitProvider: com.google.firebase.components.MissingDependencyException: Unsatisfied dependency for component Component<[class com.google.mlkit.vision.barcode.internal.zze]>{0, type=0, deps=[Dependency{anInterface=class com.google.mlkit.vision.barcode.internal.zzf, type=required, injection=direct}, Dependency{anInterface=class com.google.mlkit.common.sdkinternal.ExecutorSelector, type=required, injection=direct}]}: class com.google.mlkit.common.sdkinternal.ExecutorSelector
        at android.app.ActivityThread.installProvider(ActivityThread.java:6489)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:5982)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5888)
        at android.app.ActivityThread.access$1100(ActivityThread.java:200)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1660)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6762)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: com.google.firebase.components.MissingDependencyException: Unsatisfied dependency for component Component<[class com.google.mlkit.vision.barcode.internal.zze]>{0, type=0, deps=[Dependency{anInterface=class com.google.mlkit.vision.barcode.internal.zzf, type=required, injection=direct}, Dependency{anInterface=class com.google.mlkit.common.sdkinternal.ExecutorSelector, type=required, injection=direct}]}: class com.google.mlkit.common.sdkinternal.ExecutorSelector
        at com.google.firebase.components.ComponentRuntime.processDependencies(ComponentRuntime.java:324)
        at com.google.firebase.components.ComponentRuntime.discoverComponents(ComponentRuntime.java:139)
        at com.google.firebase.components.ComponentRuntime.<init>(ComponentRuntime.java:91)
        at com.google.firebase.components.ComponentRuntime.<init>(ComponentRuntime.java:45)
        at com.google.firebase.components.ComponentRuntime$Builder.build(ComponentRuntime.java:360)
        at com.google.mlkit.common.sdkinternal.MlKitContext.zza(com.google.mlkit:common@@17.2.0:9)
        at com.google.mlkit.common.internal.MlKitInitProvider.onCreate(com.google.mlkit:common@@17.2.0:3)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1919)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1894)
        at com.google.mlkit.common.internal.MlKitInitProvider.attachInfo(com.google.mlkit:common@@17.2.0:3)
        at android.app.ActivityThread.installProvider(ActivityThread.java:6484)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:5982) 
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5888) 
        at android.app.ActivityThread.access$1100(ActivityThread.java:200) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1660) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:6762) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 
3reactions
Eric-Cencommented, Aug 9, 2021

To

To fix this issue with dynamic feature modules, add implementation ‘com.google.mlkit:barcode-scanning:16.2.0’ to both build.gralde files in feature module and the base app module

If you are using ML Kit features in a dynamic feature module, please follow this guide to add com.google.mlkit:playstore-dynamic-feature-support:16.0.0-beta1 into your app’s base module’s gradle file and add the feature’s sdk dependency into the feature module’s dependency.

I added the followings based on the provided link: implementation ‘com.google.mlkit:playstore-dynamic-feature-support:16.0.0-beta1’ // => in base model

implementation “com.google.mlkit:barcode-scanning:16.2.0” // => in dynamic feature module

Error msg: java.lang.RuntimeException: Unable to get provider com.google.mlkit.common.internal.MlKitInitProvider: com.google.firebase.components.MissingDependencyException: Unsatisfied dependency for component Component<[class com.google.mlkit.vision.barcode.internal.zze]>{0, type=0, deps=[Dependency{anInterface=class com.google.mlkit.common.sdkinternal.ExecutorSelector, type=required, injection=direct}, Dependency{anInterface=class com.google.mlkit.vision.barcode.internal.zzf, type=required, injection=direct}]}: class com.google.mlkit.common.sdkinternal.ExecutorSelector

Any suggestion?

Read more comments on GitHub >

github_iconTop Results From Across the Web

ML Kit crash with Dynamic Feature Module (conditional delivery)
java.lang.RuntimeException : Unable to get provider com.google.mlkit.common.internal.MlKitInitProvider: com.google.firebase.components.
Read more >
MlKit | ML Kit - Google Developers
Under normal circumstances the content provider will automatically initialize ML Kit at application startup. How to disable ML Kit initialization content ...
Read more >
Android Question ML Kit Language Identification library crashing
attachInfo(ContentProvider.java:1723) at com.google.mlkit.common.internal.MlKitInitProvider.attachInfo(com.google.mlkit:common@@18.0.0:3) at ...
Read more >
Unable to get provider com google android gms ads ...
java.lang.RuntimeException: Unable to get provider com. google.android.gms.ads.MobileAdsInitProvider: java.lang.IllegalStateException:
Read more >
问答- 腾讯云开发者社区-腾讯云
java.lang.RuntimeException : Unable to get provider com.google.mlkit.common.internal.MlKitInitProvider: com.google.firebase.components.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found