android.view.InflateException: on writing a custom imageView -


i have custom imageview class below

public class myimageview extends imageview {  public myimageview(context context) {     super(context);     // todo auto-generated constructor stub }  @override protected void ondraw(canvas canvas) {     // todo auto-generated method stub     paint p = new paint(paint.anti_alias_flag);     canvas.drawline(0, 0, 20, 20, p);     super.ondraw(canvas); } } 

and inside activity class oncreate methode defined as

myimageview imageview;       // works perfect when use imageview instead of myimageview   @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_main);     imageview=(myimageview)findviewbyid(r.id.image);     bitmap dbitmap = bitmapfactory.decoderesource(getresources(), r.drawable.dinkan);     bitmap bitmap = dbitmap.copy(bitmap.config.argb_8888, true);     canvas canvas = new canvas(bitmap);     paint paint = new paint();     paint.setcolor(color.black);     imageview.setimagebitmap(bitmap); } 

it ends runtimeexception caused inflateexception. error log shown below

java.lang.runtimeexception: unable start activity componentinfo{com.example.hari.myapplication/com.example.hari.myapplication.mainactivity}: android.view.inflateexception: binary xml file line #26: error inflating class com.example.hari.myapplication.myimageview           @ android.app.activitythread.performlaunchactivity(activitythread.java:2338)           @ android.app.activitythread.handlelaunchactivity(activitythread.java:2390)           @ android.app.activitythread.access$800(activitythread.java:151)           @ android.app.activitythread$h.handlemessage(activitythread.java:1321)           @ android.os.handler.dispatchmessage(handler.java:110)           @ android.os.looper.loop(looper.java:193)           @ android.app.activitythread.main(activitythread.java:5299)           @ java.lang.reflect.method.invokenative(native method)           @ java.lang.reflect.method.invoke(method.java:515)           @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:829)           @ com.android.internal.os.zygoteinit.main(zygoteinit.java:645)           @ dalvik.system.nativestart.main(native method)        caused by: android.view.inflateexception: binary xml file line #26: error inflating class com.example.hari.myapplication.myimageview           @ android.view.layoutinflater.createview(layoutinflater.java:603)           @ android.view.layoutinflater.createviewfromtag(layoutinflater.java:696)           @ android.view.layoutinflater.rinflate(layoutinflater.java:755)           @ android.view.layoutinflater.inflate(layoutinflater.java:492)           @ android.view.layoutinflater.inflate(layoutinflater.java:397)           @ android.view.layoutinflater.inflate(layoutinflater.java:353)           @ android.support.v7.app.appcompatdelegateimplv7.setcontentview(appcompatdelegateimplv7.java:256)           @ android.support.v7.app.appcompatactivity.setcontentview(appcompatactivity.java:109)           @ com.example.hari.myapplication.mainactivity.oncreate(mainactivity.java:29)           @ android.app.activity.performcreate(activity.java:5264)           @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1088)           @ android.app.activitythread.performlaunchactivity(activitythread.java:2302)           @ android.app.activitythread.handlelaunchactivity(activitythread.java:2390)            @ android.app.activitythread.access$800(activitythread.java:151)            @ android.app.activitythread$h.handlemessage(activitythread.java:1321)            @ android.os.handler.dispatchmessage(handler.java:110)            @ android.os.looper.loop(looper.java:193)            @ android.app.activitythread.main(activitythread.java:5299)            @ java.lang.reflect.method.invokenative(native method)            @ java.lang.reflect.method.invoke(method.java:515)            @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:829)            @ com.android.internal.os.zygoteinit.main(zygoteinit.java:645)            @ dalvik.system.nativestart.main(native method)         caused by: java.lang.nosuchmethodexception: <init> [class android.content.context, interface android.util.attributeset]           @ java.lang.class.getconstructorormethod(class.java:472)           @ java.lang.class.getconstructor(class.java:446)           @ android.view.layoutinflater.createview(layoutinflater.java:568)           @ android.view.layoutinflater.createviewfromtag(layoutinflater.java:696)            @ android.view.layoutinflater.rinflate(layoutinflater.java:755)            @ android.view.layoutinflater.inflate(layoutinflater.java:492)            @ android.view.layoutinflater.inflate(layoutinflater.java:397)            @ android.view.layoutinflater.inflate(layoutinflater.java:353)            @ android.support.v7.app.appcompatdelegateimplv7.setcontentview(appcompatdelegateimplv7.java:256)            @ android.support.v7.app.appcompatactivity.setcontentview(appcompatactivity.java:109)            @ com.example.hari.myapplication.mainactivity.oncreate(mainactivity.java:29)            @ android.app.activity.performcreate(activity.java:5264)            @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1088)            @ android.app.activitythread.performlaunchactivity(activitythread.java:2302)            @ android.app.activitythread.handlelaunchactivity(activitythread.java:2390)            @ android.app.activitythread.access$800(activitythread.java:151)            @ android.app.activitythread$h.handlemessage(activitythread.java:1321)            @ android.os.handler.dispatchmessage(handler.java:110)            @ android.os.looper.loop(looper.java:193)            @ android.app.activitythread.main(activitythread.java:5299)            @ java.lang.reflect.method.invokenative(native method 

but works perfect when use imageview instead of custom imageview(myimageview). wrong code? appreciated.

when inflating custom view xml, must have correct constructors. try adding these constructors 1 have

public myimageview(context context, attributeset attrs) {     super(context, attrs); }  public myimageview(context context, attributeset attrs, int defstyle) {     super(context, attrs, defstyle); } 

Comments

Popular posts from this blog

java - Run spring boot application error: Cannot instantiate interface org.springframework.context.ApplicationListener -

reactjs - React router and this.props.children - how to pass state to this.props.children -

Excel VBA "Microsoft Windows Common Controls 6.0 (SP6)" Location Changes -