com.luminal.view E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.luminal.view, PID: 4456
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.luminal.view/com.luminal.view.MainActivity}: android.view.InflateException: Binary XML file line #19: Binary XML file line #19: Error inflating class com.luminal.view.CustomView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2755)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2816)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1555)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:163)
at android.app.ActivityThread.main(ActivityThread.java:6385)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
Caused by: android.view.InflateException: Binary XML file line #19: Binary XML file line #19: Error inflating class com.luminal.view.CustomView
Caused by: android.view.InflateException: Binary XML file line #19: Error inflating class com.luminal.view.CustomView
Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet]
解决方式:
若我们只通过XML布局的方式往Activity中添加我们自定义的View时,必须重写双参的构造函数。但为了防止出错,建议把单参的、双参的都重写了。
// public CustomView(Context context) {
// super(context);
// }
//必须要实现的构造函数
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
}
// public CustomView(Context context, AttributeSet attrs, int defStyleAttr) {
// super(context, attrs, defStyleAttr);
// }
//
// @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
// public CustomView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
// super(context, attrs, defStyleAttr, defStyleRes);
// }
本文详细解析了在Android应用中使用自定义View时遇到的常见问题——因构造函数缺失导致的崩溃。文章提供了具体的错误信息,并指导如何正确实现自定义View的构造函数,确保其能在XML布局中正常加载。

被折叠的 条评论
为什么被折叠?



