美文网首页
unresolved supertypes: androidx.

unresolved supertypes: androidx.

作者: 逆水寒Stephen | 来源:发表于2023-11-14 10:54 被阅读0次

今天撸代码的时候刚开始还好好的,能正常编译,突然加了啥代码后突然就是不能编译了,报错如下:


error msg

看报错,是约束布局类找不到,还以为是gradle抽风拉不到依赖了,尝试改ConstraintLayout的编译版本,检查科学上网,没得卵用,无语至极!

百度谷歌这些关键报错信息:
unresolved supertypes: androidx.constraintlayout.widget.ConstraintLayout
Adding -Xextended-compiler-checks argument might provide additional information.
还是没得关键信息

最后复盘了哈出问题的时间和大概修改的类,重新拉了个之前没报错的commit代码来一个类一个方法的新增,确定出问题的地方,最后排查到,居然是设置了一个回调方法导致,报错信息和出问题地方感觉很难关联到一起,只能怀疑是因为报错导致后面的引用失败了,也是离了个大谱!

  • 当时类结构是如下这样:
package com.xx.xx.xx

...
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.constraintlayout.widget.ConstraintSet
...

class XXXUtilsTool {

    companion object {
        private var mInstance: XXXUtilsTool? = null

        @JvmStatic
        @Synchronized
        fun getInstance(): XXXUtilsTool {
            if (mInstance == null) mInstance = XXXUtilsTool()
            return mInstance!!
        }
    }

    ...

    class DragFloatBtnView : ConstraintLayout {
        ...
        private var onDragFloatBtnClickListener: OnDragFloatBtnClickListener? = null
        ...

        @SuppressLint("Recycle")
        constructor(context: Context) : super(context) {
            ...
        }

        fun setOnDragFloatBtnClickListener(onDragFloatBtnClickListener: OnDragFloatBtnClickListener?) {
            this.onDragFloatBtnClickListener = onDragFloatBtnClickListener
        }
        ...

        interface OnDragFloatBtnClickListener{
            fun onFloatSubBtnClick(xxx: XXX)
        }
    }
}
  • 主Activity上调用方式如下:
XXXUtilsTool.getInstance().setOnFloatBallBtnClickListener(object : XXXUtilsTool.DragFloatBtnView.OnDragFloatBtnClickListener{
        override fun onFloatSubBtnClick(xxx: XXX) {
})
  • 结果问题就出在这个调用setOnFloatBallBtnClickListener上,注释掉就没问题,添加上报错,后来只能怀疑单例类里面包含内部类,再包含interface接口,估计不得行,后来把DragFloatBtnView整个类提出来还是不行,看来interface接口只能单独提出来,结果就是提出来就ok了,特此记录,以做参考!

相关文章

网友评论

      本文标题:unresolved supertypes: androidx.

      本文链接:https://www.haomeiwen.com/subject/ylljwdtx.html