运行这段代码时,我得到一个NullPointerException
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;
}
}
基本上我正在尝试使用父类的方法将不同的sprite加载到不同的类中。但spriteResource没有设置,我不明白为什么? 我设置了将资源返回为0的日志。任何想法为什么会发生这种情况或如何解决它?
由于
答案 0 :(得分:1)
当thing()中的createBitmap尝试为sprite变量赋值时,sprite是其in-parameters之一,这意味着您在创建sprite之前尝试使用sprite并获得空指针异常。 / p>