自定义View:关于Caused by: java.lang.NoSuchMethodException异常
来源:互联网 发布:淘宝多长时间自动评价 编辑:程序博客网 时间:2024/04/29 01:39
在编写自定义View控件,在XML文件上面使用自定义的控件的时候出现了错误:
android.view.InflateException: Binary XML file line #8: Error inflating clas
这里说编写的XML代码有误:
1.有可能你的XML控件编写有误,这里有可能是你的包名填写有误,使用crtl+鼠标点击看能不能跳转到该组件的定义的地方,如果不可以跳转到你编写的话,仔细检查就可以了
2.View的构造函数书写有误,三个构造方法必须在你自定义的中实现
View(Context context) //Simple constructor to use when creating a view from code
View(Context context, AttributeSet attrs) //Constructor that is called when inflating a view from XML
View(Context context, AttributeSet attrs, int defStyle) //Perform inflation from XML and apply a class-specific base style
第二个和第三个构造函数对于XML这种引用方式是必须实现的,用于读取你在layout文件上面改写的属性(例如 android:text="XX" ),三个构造函数会在不同的应用场合,使用不同的主题来实例化一个View对象。注意:不同改写构造函数的传入参数,
View(Context context,int data) //Simple constructor to use when creating a view from code
View(Context context) //Simple constructor to use when creating a view from code
View(Context context, AttributeSet attrs) //Constructor that is called when inflating a view from XML
View(Context context, AttributeSet attrs, int defStyle) //Perform inflation from XML and apply a class-specific base style
不要改写构造函数中的参数,因为我们在实例化一个View的时候需要进行一些数据的实例化,所以有时通过构造函数传入数据,但是自定义View在XML引入实例化的时候,只允许使用派生基类的三种构造函数,多出的构造函数就会导致程序报出错误:Caused by: java.lang.NoSuchMethodException,所以把是上面的红色构造方法去掉就可以了,传入数据改用,set/get方式,然后在进行View的初始化操作。
一般如果你自定义的View构造函数编写正确的话,在XML文件 编写的时候,按alt + / 能高亮提示,如果没有高亮说明你的View的编写有误,有可能是你的构造方法没有写好。- 自定义View:关于Caused by: java.lang.NoSuchMethodException异常
- Caused by: java.lang.NoSuchMethodException: false [class android.view.View]
- Caused by: java.lang.NoSuchMethodException: xxx [class android.view.View]
- Caused by: java.lang.NoSuchMethodException
- 自定义View:Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context,
- Android 自定义控件时出现: Caused by: java.lang.NoSuchMethodException
- Caused by: java.lang.NoSuchMethodException: callDrawGLFunction [long]
- java.lang.NoSuchMethodException异常
- Caused by: java.lang.NoSuchMethodError 异常
- 异常处理:Caused by: Java.lang.IllegalStateException
- Caused by: java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator.<init>(java.lang.
- Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android
- Caused by: java.lang.NoSuchMethodException: javax.xml.bind.annotation.XmlElementRef.required()
- Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android
- Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android
- Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android
- Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface androi
- Caused by: java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet
- Scala class和case class的区别
- linux 添加开机自启动
- js常用运算符及用法
- openstack nova-api启动流程
- Oracle&SQL数据库参数异同
- 自定义View:关于Caused by: java.lang.NoSuchMethodException异常
- 输入 动态模糊查询 文本下拉框
- Android打包APK后禁止通过DMMS的Logcat查看程序输出的调试信息
- 腾讯分析系统架构解析
- Linux文件夹分析
- 1015
- Hibernate基本示例
- Android--多线程之Handler
- ChemDraw Professional 15有哪些聚合物工具?