android - Adding my custom View into an XML layout throws exception -
i'm trying create first custom view subclass graphview
, add layout xml file.
i found this question , tried apply project, seems wrong because eclipse ide tells me:
de.muza3000.graph.graphview failed instantiate.
and throws exception:
java.lang.nosuchmethodexception: de.muza3000.graph.graphview.<init>(android.content.context, android.util.attributeset) @ java.lang.class.getconstructor0(unknown source) @ java.lang.class.getconstructor(unknown source) @ com.android.ide.eclipse.adt.internal.editors.layout.projectcallback.instantiateclass(unknown source) @ com.android.ide.eclipse.adt.internal.editors.layout.projectcallback.loadview(unknown source) @ android.view.bridgeinflater.loadcustomview(bridgeinflater.java:198) @ android.view.bridgeinflater.createviewfromtag(bridgeinflater.java:126) @ android.view.layoutinflater.rinflate(layoutinflater.java:618) @ android.view.layoutinflater.inflate(layoutinflater.java:407) @ android.view.layoutinflater.inflate(layoutinflater.java:296) @ com.android.layoutlib.bridge.bridge.computelayout(bridge.java:396) @ com.android.ide.common.rendering.layoutlibrary.createlegacysession(layoutlibrary.java:382) @ com.android.ide.common.rendering.layoutlibrary.createsession(layoutlibrary.java:276) @ com.android.ide.eclipse.adt.internal.editors.layout.gle2.graphicaleditorpart.renderwithbridge(unknown source) @ com.android.ide.eclipse.adt.internal.editors.layout.gle2.graphicaleditorpart.renderwithbridge(unknown source) @ com.android.ide.eclipse.adt.internal.editors.layout.gle2.graphicaleditorpart.recomputelayout(unknown source) @ com.android.ide.eclipse.adt.internal.editors.layout.gle2.graphicaleditorpart.activated(unknown source) @ com.android.ide.eclipse.adt.internal.editors.layout.layouteditor.pagechange(unknown source) @ org.eclipse.ui.part.multipageeditorpart$2.widgetselected(multipageeditorpart.java:290) @ org.eclipse.swt.widgets.typedlistener.handleevent(typedlistener.java:234) @ org.eclipse.swt.widgets.eventtable.sendevent(eventtable.java:84) @ org.eclipse.swt.widgets.widget.sendevent(widget.java:1053) @ org.eclipse.swt.widgets.widget.sendevent(widget.java:1077) @ org.eclipse.swt.widgets.widget.sendevent(widget.java:1062) @ org.eclipse.swt.widgets.widget.notifylisteners(widget.java:774) @ org.eclipse.swt.custom.ctabfolder.setselection(ctabfolder.java:2743) @ org.eclipse.swt.custom.ctabfolder.onmouse(ctabfolder.java:1429) @ org.eclipse.swt.custom.ctabfolder$1.handleevent(ctabfolder.java:257) @ org.eclipse.swt.widgets.eventtable.sendevent(eventtable.java:84) @ org.eclipse.swt.widgets.widget.sendevent(widget.java:1053) @ org.eclipse.swt.widgets.display.rundeferredevents(display.java:4066) @ org.eclipse.swt.widgets.display.readanddispatch(display.java:3657) @ org.eclipse.ui.internal.workbench.runeventloop(workbench.java:2640) @ org.eclipse.ui.internal.workbench.runui(workbench.java:2604) @ org.eclipse.ui.internal.workbench.access$4(workbench.java:2438) @ org.eclipse.ui.internal.workbench$7.run(workbench.java:671) @ org.eclipse.core.databinding.observable.realm.runwithdefault(realm.java:332) @ org.eclipse.ui.internal.workbench.createandrunworkbench(workbench.java:664) @ org.eclipse.ui.platformui.createandrunworkbench(platformui.java:149) @ org.eclipse.ui.internal.ide.application.ideapplication.start(ideapplication.java:115) @ org.eclipse.equinox.internal.app.eclipseapphandle.run(eclipseapphandle.java:196) @ org.eclipse.core.runtime.internal.adaptor.eclipseapplauncher.runapplication(eclipseapplauncher.java:110) @ org.eclipse.core.runtime.internal.adaptor.eclipseapplauncher.start(eclipseapplauncher.java:79) @ org.eclipse.core.runtime.adaptor.eclipsestarter.run(eclipsestarter.java:369) @ org.eclipse.core.runtime.adaptor.eclipsestarter.run(eclipsestarter.java:179) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(unknown source) @ sun.reflect.delegatingmethodaccessorimpl.invoke(unknown source) @ java.lang.reflect.method.invoke(unknown source) @ org.eclipse.equinox.launcher.main.invokeframework(main.java:619) @ org.eclipse.equinox.launcher.main.basicrun(main.java:574) @ org.eclipse.equinox.launcher.main.run(main.java:1407)
here layout:
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <textview android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello"/> <de.muza3000.graph.graphview android:layout_width="fill_parent"/> </linearlayout>
and code:
package de.muza3000.graph; import android.content.context; import android.util.attributeset; import android.view.view; public class graphview extends view { graphview(context context, attributeset attrs, int defstyle) { super(context, attrs, defstyle); } graphview(context context, attributeset attrs) { super(context, attrs); } graphview(context context) { super(context); } }
change access modifier of constructors public.
Comments
Post a Comment