某次Android Studio更新[1]之後,偶然發現在創建新專案時多了個沒看過的選項:
Use AndroidX artifacts
依官網的說明,這是個加強版的 Android Support Library
勾勾看會發生什麼事吧!
● 問題很快的就來了!
在調用某些物件後,在執行時期出現了找不到各種class的情況。(Build沒有問題)
例如,從IDE中拖個AppBarLayout出來,Build完成後執行,App Crash:
Error inflating class android.support.design.widget.CoordinatorLayout
…
Didn’t find class “android.support.design.widget.CoordinatorLayout” on path: …
欸?
android.support.design
不是應該很理所當然的已經加進Gradle了嗎?
打開app gradle file瞧瞧。
發現相關的Library都被換成帶有AndroidX關鍵字的版本。
仔細瞧瞧XML檔,發現IDE為你準備的物件仍舊來自於 Andorid.Support.XXX
:
1 | <android.support.design.widget.CoordinatorLayout |
那我們自己加吧!手動的把Android.support.xxx加進來了,問題仍舊存在,依然是可Build不可執行。
● 解決方式
忙了一天,終於發現,只需要把xml內的物件依照這個列表替換就解決了。
期望之後Android Studio更新後能自動抓取對應的Library,不用再手動更改了!
寫這篇的時候使用的是Android Studio 3.3.2 ↩︎