close

今天發生了一個問題
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

 

一般來說,我們在使用 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






 


arrow
arrow
    全站熱搜

    顏澤偉 發表在 痞客邦 留言(1) 人氣()