java.lang.NoSuchFieldError: No static field abc_text_select_handle_left_mtrl_dark of type I in class Landroidx/appcompat/R$drawable; or its superclasses (declaration of 'androidx.appcompat.R$drawable' appears in /data/app/
现象:项目升级插件后,skin-support插件为做换肤时,报错导致应用崩溃。报错详情如下图。
问题分析:
报错提示是找不到资源 abc_text_select_handle_left_mtrl_dark,找开 androidx.appcompat 源码,发现在res资源中,的确找不到该资源。 (版本是1.5.0)
降低版本 androidx.appcompat 版本到1.2.0后,正常。打开源码,发现在res/drawable-***-v4/目录下存在 abc_text_select_handle_left_mtrl_dark.png 文件。 所以得出结论,skin-support不能支持高版本的androidx库。
解决方法:强制项目使用低版本androidx库。在项目build.gradle文件中,编写如下图配置
**************************追加类似问题********************************
使用skin.support对 底部导航栏进行换肤时,报错。原因与上述问题一样,都是找不到资源,因为 com.google.android.material 版本过高,找不到资源路径。
所以强制使用低版本即可解决,如下图: