Android 没有主构造函数,类扩展AppCompatImageView超类型初始化是不可能的

Android 没有主构造函数,类扩展AppCompatImageView超类型初始化是不可能的,android,kotlin,android-custom-view,Android,Kotlin,Android Custom View,有一个扩展AppCompatImageView的自定义Imageview类 它显示错误:如果没有主构造函数,超类型初始化是不可能的 class ImageViewVasl : AppCompatImageView() { constructor(context: Context) : super(context) { initialize(context = context, attrs = null) } constructor(context: Con

有一个扩展AppCompatImageView的自定义Imageview类

它显示错误:如果没有主构造函数,超类型初始化是不可能的

class ImageViewVasl : AppCompatImageView() {
    constructor(context: Context) : super(context) {
        initialize(context = context, attrs = null)
    }
    constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
        initialize(context = context, attrs = attrs)
    }
    constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(
        context,
        attrs,
        defStyleAttr
    ) {
        initialize(context = context, attrs = attrs)
    }
    private fun initialize(
        context: Context?,
        attrs: AttributeSet?
    ) {

    }
}
尝试:

class ImageViewVasl():AppCompatImageView(){
构造函数(上下文:上下文):此(上下文){
初始化(context=context,attrs=null)
}
...
}
或:

class ImageViewVasl:AppCompatImageView{
构造函数(context:context):这个(context,null)
构造函数(context:context,attrs:AttributeSet?):这个(context,attrs,0)
构造函数(context:context,attrs:AttributeSet?,defStyleAttr:Int):super(context,attrs,defStyleAttr){
...
}
}
试试:

class ImageViewVasl():AppCompatImageView(){
构造函数(上下文:上下文):此(上下文){
初始化(context=context,attrs=null)
}
...
}
或:

class ImageViewVasl:AppCompatImageView{
构造函数(context:context):这个(context,null)
构造函数(context:context,attrs:AttributeSet?):这个(context,attrs,0)
构造函数(context:context,attrs:AttributeSet?,defStyleAttr:Int):super(context,attrs,defStyleAttr){
...
}
}

您需要调用父级的构造函数:

class PieChart(context: Context, attrs: AttributeSet) : View(context, attrs)
在您的源代码中,我看不到您在哪里调用父级的构造函数。
此链接中的更多详细信息:

您需要调用父级构造函数:

class PieChart(context: Context, attrs: AttributeSet) : View(context, attrs)
在您的源代码中,我看不到您在哪里调用父级的构造函数。 此链接中的更多详细信息:

只需在:AppCompatImageView()之后删除),如下所示

class ImageViewVasl : AppCompatImageView {
...
...
}
只需在:AppCompatImageView()之后删除(),如下所示

class ImageViewVasl : AppCompatImageView {
...
...
}

委托调用链中有一个循环委托调用链中有一个循环我在源代码中看到了一个“this”或“super”构造函数,您有三个构造函数方法。其中只有一个应该使用“super”,另外两个应该使用“this”。阅读此博客:Solved:class ImageViewVasl(context:context,attrs:AttributeSet?,defStyleAttr:Int):AppCompatImageView(context,attrs,defStyleAttr){}由于在源代码中callI看到了“this”或“super”构造函数,所以有三个构造函数方法。其中只有一个应该使用“super”,另外两个应该使用“this”。阅读此博客:已解决:类ImageViewVasl(上下文:context,attrs:AttributeSet?,defStyleAttr:Int):AppCompatImageView(上下文,attrs,defStyleAttr){}