19/05/2014, 15:01
|
| | Fecha de Ingreso: enero-2009 Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 10 meses Puntos: 11 | |
ClassNotFoundException PathShape android Buenas tardes a todos, estoy haciendo un ejercicio de un libro para aprender android y me he topado con el siguiente problema: Hice una vista personalizada para poder crear una figura con un ShapeDrawable basandome en un PathShape, pero incluso desde el editor grafico de layouts no se puede instanciar la vista debido a que aparece este error:
java.lang.ClassNotFoundException: android.graphics.drawable.shapes.PathShape
at com.android.ide.eclipse.adt.internal.resources.man ager.ProjectClassLoader.findClass(ProjectClassLoad er.java:109)
at java.lang.ClassLoader.loadClass(ClassLoader.java:3 06)
at java.lang.ClassLoader.loadClass(ClassLoader.java:2 47)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Cla ss.java:2398)
at java.lang.Class.getConstructor0(Class.java:2708)
at java.lang.Class.getConstructor(Class.java:1659)
at com.android.ide.eclipse.adt.internal.editors.layou t.ProjectCallback.instantiateClass(ProjectCallback .java:362)
at com.android.ide.eclipse.adt.internal.editors.layou t.ProjectCallback.loadView(ProjectCallback.java:18 9)
at android.view.BridgeInflater.loadCustomView(BridgeI nflater.java:207)
He buscado mucho en internet tratando de solucionarlo pero aunque encuentro temas similares no he podido solucionarlo, ya que las soluciones a los temas que he encontrado no han funcionado en mi caso, este es mi codigo:
public class VistaJuego extends View {
public VistaJuego(Context context, AttributeSet attrs) {
super(context, attrs);
Drawable drawableNave, drawableAsteroide, drawableMisil;
//drawableAsteroide=context.getResources().getDrawab le(R.drawable.asteroide1);
asteroides =new Vector<Grafico>();
Path pathAsteroide=new Path();
pathAsteroide.moveTo((float)0.3,(float)0.0);
pathAsteroide.moveTo((float)0.6,(float)0.0);
pathAsteroide.moveTo((float)0.6,(float)0.3);
pathAsteroide.moveTo((float)0.8,(float)0.2);
pathAsteroide.moveTo((float)1.0,(float)0.4);
pathAsteroide.moveTo((float)0.8,(float)0.6);
pathAsteroide.moveTo((float)0.9,(float)0.9);
pathAsteroide.moveTo((float)0.8,(float)1.0);
pathAsteroide.moveTo((float)0.4,(float)1.0);
pathAsteroide.moveTo((float)0.0,(float)0.6);
pathAsteroide.moveTo((float)0.0,(float)0.2);
pathAsteroide.moveTo((float)0.3,(float)0.0);
//pathAsteroide.close();
ShapeDrawable dAsteroide=new ShapeDrawable(new PathShape(pathAsteroide, 1, 1) );
dAsteroide.getPaint().setColor(Color.WHITE);
dAsteroide.getPaint().setStyle(Style.STROKE);
dAsteroide.setIntrinsicWidth(50);
dAsteroide.setIntrinsicHeight(50);
drawableAsteroide=dAsteroide;
setBackgroundColor(Color.BLACK);
for (int i = 0; i < numAsteroides; i++) {
Grafico asteroide=new Grafico(this, drawableAsteroide);
asteroide.setIncY(Math.random()*4-2);
asteroide.setIncX(Math.random()*4-2);
asteroide.setAngulo((int)(Math.random()*360));
asteroide.setRotacion((int)(Math.random()*8-4));
asteroides.add(asteroide);
}
}
espero alguien pueda ayudarme.
Saludos |