在AndroidX项目中使用QMUI导致"Didn't find class "androidx.legacy.widget.Space" on path:"的问题

【问题描述】

Android Studio中开发集成了AndroidX的项目,用到了QMUI,但是下面的代码却报错:

QMUIDialog.MessageDialogBuilder builder = new QMUIDialog.MessageDialogBuilder(mContext);
builder.setMessage("测试Message")
    .setTitle("测试Title")
    .addAction("确定", new QMUIDialogAction.ActionListener() {
        @Override
        public void onClick(QMUIDialog dialog, int index) {
            dialog.dismiss();
        }
    })
    .create().show();

错误信息为:

Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.legacy.widget.Space" on path: ... ...

【解决方案】

经测试,是addAction()方法导致的,具体源码没测试,只知道是androidx.legacy.widget.Space这个类没找到。
AndroidX中关于legacy的包有以下几个:

androidx.legacy:legacy-preference-v14:1.0.0
androidx.legacy:legacy-support-core-ui:1.0.0
androidx.legacy:legacy-support-core-utils:1.0.0
androidx.legacy:legacy-support-v13:1.0.0
androidx.legacy:legacy-support-v4:1.0.0

View有关的肯定是UI包了,于是先实验一下第二个,在build.gradle中添加如下代码:

implementation 'androidx.legacy:legacy-support-core-ui:1.0.0'

跑起来测试,问题一次解决。

你可能感兴趣的:(在AndroidX项目中使用QMUI导致"Didn't find class "androidx.legacy.widget.Space" on path:"的问题)