Did not find class android support design widget CoordinatorLayout

最近要維護一箇舊項目,接了新的功能,但新功能需要用到新的模塊,所以吧啦啦的把舊有的代碼都替換爲新的Androidx了,原本編譯沒有報錯,心想不太難,但是運行起來,直接掛了。。。。下面是錯誤的代碼:

2019-12-20 15:51:31.670 8729-8729/com.reach.reachplayer E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.reach.reachplayer, PID: 8729
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.reach.reachplayer/com.reach.reachplayer.MainActivity}: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3194)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3302)
        at android.app.ActivityThread.-wrap12(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1891)
        at android.os.Handler.dispatchMessage(Handler.java:108)
        at android.os.Looper.loop(Looper.java:166)
        at android.app.ActivityThread.main(ActivityThread.java:7425)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
     Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout
     Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout
     Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.design.widget.CoordinatorLayout" on path: DexPathList[[zip file "/data/app/com.reach.reachplayer-QQnkS0v4W79B6CnLlq0a-Q==/base.apk"],nativeLibraryDirectories=[/data/app/com.reach.reachplayer-QQnkS0v4W79B6CnLlq0a-Q==/lib/arm, /data/app/com.reach.reachplayer-QQnkS0v4W79B6CnLlq0a-Q==/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib, /product/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at android.view.LayoutInflater.createView(LayoutInflater.java:613)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:801)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
        at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:477)
        at com.android.internal.policy.HwPhoneWindow.setContentView(HwPhoneWindow.java:321)
        at android.app.Activity.setContentView(Activity.java:2839)
        at com.reach.reachplayer.BaseActivity.setContentView(BaseActivity.java:20)
        at com.reach.reachplayer.MainActivity.onCreate(MainActivity.java:74)
        at android.app.Activity.performCreate(Activity.java:7372)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3147)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3302)
        at android.app.ActivityThread.-wrap12(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1891)
        at android.os.Handler.dispatchMessage(Handler.java:108)
        at android.os.Looper.loop(Looper.java:166)
        at android.app.ActivityThread.main(ActivityThread.java:7425)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)

 

在網上找了很多方法,概括起來就是兩種方法,一是AndroidManifest裏的主題,另一種就是在build.gradle裏添加新的依賴,但都是沒有作用。

 

後來想到是替換了新的androidx,那既然這樣,可以把紅框裏的替換爲androidx:

替換androidx的一段代碼如下面所示:

androidx.coordinatorlayout.widget.CoordinatorLayout

替換後的截圖: 

 

後記,替換爲androidx後,有很多地方都出錯了,報的都是和這個類似的錯誤,如下所示:

所以解決辦法都是把報錯的xml文件替換爲androidx即可~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章