Android Studio报错 解决找不到 android.support.v7.XXX 问题

对于类似以下错误

Error inflating class android.support.v7.widget.RecyclerView
Didn’t find class “android.support.v7.widget.RecyclerView”

Error inflating class android.support.v7.widget.Toolbar
Didn’t find class “android.support.v7.widget.Toolbar”

Error inflating class android.support.v7.widget.appcompat
Didn’t find class “android.support.v7.widget.appcompat”

…

很有可能是因为android.support的v4、v7版本混乱冲突导致的.网上其他解决办法都导向统一版本号、清除缓存重新加载等方式,这里提供一种最新方法:改用androidx

AndroidX与support包的关系

androidx 是对 android.support.xxx 包的整理后产物。由于之前的support包过于混乱,所以,google推出了 androidX。

新的Android扩展库(AndroidX)取代了使用七年之久的Android支持库,旨在简化相关工作,并为该库未来的发展打下坚实的基础。
Android支持库允许开发人员在旧版本的Android上支持新的OS特性,或者回退到等效的功能,是一种可以部分地减轻Android生态系统碎片化的有效方式。按照谷歌的说法:

然而,在其自然发展的过程中,出现了多个让许多开发人员为之困惑的选项。其中一个例子是存在以“v7”命名的组件和包,这是该库需要的原始Android SDK级别,目前需要的最小版本是14(Android 4.0)。

自2018年5月Androidx发布少量组件不够稳定的alpha测试版一年后,已经完成多个组件的稳定版并持续更新中
更多信息可参考Androidx官方文档

Androidx使用方式

在build.gradle中用

implementation 'androidx.xxx(组件名):xxx(组件名):1.0.0(版本号)'

替换

implementation 'com.android.support.v7.widget.xxx(组件名):x.x.x(版本号)'

并在xml文件中用

<androidx.xxx.widget.xxx(驼峰)
        ...>
</androidx.xxx.widget.xxx(驼峰)>

替换对应组件标签

<android.support.v7.widget.xxx
        ...>
</android.support.v7.widget.xxx>

例:recyclerView

在build.gradle中用

implementation 'androidx.recyclerview:recyclerview:1.0.0'

替换

implementation 'com.android.support:recyclerview-v7:x.x.x'

并在xml文件中用

<androidx.recyclerview.widget.RecyclerView
        ...>
</androidx.recyclerview.widget.RecyclerView>

替换对应组件标签

<android.support.v7.widget.RecyclerView
        ...>
</android.support.v7.widget.RecyclerView>

由于Androidx中是对于support包的整合升级,可能还需要修改组件相应代码,如recyclerView组件中,若使用还需要在Activity/fragment的代码中修改:

manager.setOrientation(LinearLayoutManager.VERTICAL);

的参数 LinearLayoutManager.VERTICAL为RecyclerView.VERTICAL


其他不同组件版本号及命名方式可能各不相同,具体可参考Androidx官方文档

如果对你有帮助,就一键三连呗(点赞+收藏+关注),我会持续更新更多干货~~

更多推荐