今天發生了一個問題
java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/com.dingok.centuryasia-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.dingok.centuryasia-1, /system/lib]]……
這是我在測試階段發生的
由於在開發階段都是用 Android 7.0 的模擬器
所以一直都很順利正常
直到後來用比較老舊的機子
才發現,原來在 Andorid 4.4.4 以下的時候會出現這個錯誤
經過一番檢查後才得知
一切的原兇為 MultiDex
一般來說,我們在使用 MultiDex 時
都是照著上面的文章做的
但要特別注意一個細節
像我這次的專案是這樣子的
public class Constant extends Application {
如果是在 API 21 以上都是沒問題的
但以下的話需要多 extends MultiDexapplication
也就是改成下列這樣
public class Constant extends MultiDexApplication {
這樣問題就解決囉 !!!
官方也有解釋,點我觀看
資料來源:
https://developer.android.com/studio/build/multidex.html
https://stackoverflow.com/questions/39825543/didnt-find-class-com-google-firebase-provider-firebaseinitprovider
留言列表