【发布时间】:2013-07-09 17:23:27
【问题描述】:
有时,我会遇到 NullPointerException。请让我知道如何纠正这个问题。在出错的时候,我已经检查了变量 backgoundImage 中空值的可能性。变量backgoundImage不为空。
canvas.drawBitmap(backgoundImage, 0, 0 , null);
代码:
@Override
public void run() {
// TODO Auto-generated method stub
ourHolder = getHolder();
while (isRunning) {
if (!ourHolder.getSurface().isValid()){
continue;
}
canvas = ourHolder.lockCanvas();
screenCenterX = dWidth / 2;
screenCenterY = dHeight / 2;
//-----------------------------------------------------------------------------------
if(backgoundImage == null){
try {
Log.i("DragDropCheck", "----------------backgoundImage is null--------");
backgoundImage = getAssetImage(getContext(),"backgroundhomepage");
canvas.drawBitmap(backgoundImage, 0, 0 , null);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
canvas.drawBitmap(backgoundImage, 0, 0 , null);
}
//-----------------------------------------------------------------------------------
if (imagePublishDone) {
if(!welcomeDone){
welcomeDone=true;
}
moveImageInEllipticalPath();
} else {
initialImagePublish();
}
centreReached = false;
ourHolder.unlockCanvasAndPost(canvas);
}
}
logcat:
07-09 22:40:18.689: E/AndroidRuntime(8794): FATAL EXCEPTION: Thread-621
07-09 22:40:18.689: E/AndroidRuntime(8794): java.lang.NullPointerEception
07-09 22:40:18.689: E/AndroidRuntime(8794): at com.eample.funandlearn.DragDrop$MyBringBackSurface.run(DragDrop.java:645)
07-09 22:40:18.689: E/AndroidRuntime(8794): at java.lang.Thread.run(Thread.java:856)
【问题讨论】:
-
它的
canvas为空。 -
你也测试过
if(canvas!=null)吗? -
给我们确切的路线,否则有太多的假设。
-
这是出现错误的行 canvas.drawBitmap(backgoundImage, 0, 0 , null);这出现在 if 条件的 else 部分
标签: android android-canvas android-image