2011-07-24 6 views
0

Je reçois un NullPointerException lors de l'exécution ce morceau de codeAndroid: NullPointerException tout en ajoutant des ressources

abstract class thing extends Drawable(){ 
    Bitmap sprite; 
    int spriteResource; 

    public thing(){ 
      setResources(); 
      sprite=Bitmap.createBitmap(sprite,src.left,src.top,(src.right-src.left),(src.bottom-src.top),m,true); 
    } 

    @Override 
    public void draw(Canvas c){ 
    bit= Bitmap.createBitmap(sprite,0,0,45, 45);// Generates the exception 
    c.drawBitmap(bit, x, y, null); 
    } 

    abstract void setResource(); 
} 

class otherThing extends thing(){ 
    @Override 
     public void setResource(){ 
     spriteResource=R.drawable.otherThing_sprite; 
     } 
} 

Fondamentalement, je suis en train de charger des sprites dans différentes classes en utilisant la méthode de la classe parente. Mais le spriteResource n'est pas défini et je ne comprends pas pourquoi? J'ai mis en place le journal qui a renvoyé la ressource comme 0. Toutes les idées pour lesquelles cela se produit ou comment le résoudre ???

Merci

Répondre

1

Quand CreateBitmap dans la chose() tente de donner la variable sprite une valeur, sprite est l'un de ses produits en paramètres, cela signifie que vous essayez d'utiliser sprite avant qu'il ne soit créé et vous obtenez une exception de pointeur null.

+0

Vous êtes génial! Je me suis cogné la tête contre le mur pour un problème similaire. Votre réponse m'a suggéré que «nous ne pouvons pas référencer des ressources qui n'ont pas encore été créées», ce qui m'a aidé à résoudre mon problème. Tu es mon héros! (sanglot) –

Questions connexes