无法在棒棒糖之前的设备上获取提供程序 com.google.firebase.perf.provider.FirebasePerfProvider

Unable to get provider com.google.firebase.perf.provider.FirebasePerfProvider on pre-lollipop devices

在 v21 之前的所有版本(即 16-19)中,我的应用程序因以下错误而在启动时崩溃:

E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to get provider com.google.firebase.perf.provider.FirebasePerfProvider: java.lang.ClassNotFoundException: com.google.firebase.perf.provider.FirebasePerfProvider
    at android.app.ActivityThread.installProvider(ActivityThread.java:4563)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:4190)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4132)
    at android.app.ActivityThread.access00(ActivityThread.java:130)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1255)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4745)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.ClassNotFoundException: com.google.firebase.perf.provider.FirebasePerfProvider
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
    at android.app.ActivityThread.installProvider(ActivityThread.java:4548)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:4190) 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4132) 
    at android.app.ActivityThread.access00(ActivityThread.java:130) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1255) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:4745) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
    at dalvik.system.NativeStart.main(Native Method) 

在 Android 5 及更高版本上,我的应用程序可以正常运行。

我的目标是 SDK 版本 27,我的最低版本是 14。 是的,我还启用了 Multidex 支持。我已经看到了一些关于此的答案,但它们与我的问题无关,因为我已经启用了多年。 目前我也在使用最新的 Firebase 服务 11.8.0。

已修复!

虽然我在 Gradle 中导入并启用了 multidex,但我不得不更改我的应用程序 class 以扩展 MultidexApplication 而不是 Application

希望对其他人也有帮助!

感谢 MultiDex 提示,它没有为我解决这个问题,但无论如何都很有用。

为我解决的是,在我的应用程序中 build.gradle 移动

apply plugin: 'com.google.firebase.firebase-perf'

在以下内容之前:

apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'io.fabric'

换句话说,尽早应用 firebase-perf,但在 'com.android.application' 之后。

在此处分享,以防其他人适用。

我尝试删除

apply plugin: 'com.google.firebase.firebase-perf'

build.gradle然后重新添加,我就解决了