Я пишу живую бумагу, которая будет извлекать изображения из flickr, делать их фоновыми и менять их так часто. Прямо сейчас я заглушил / проигнорировал / обошел часть flickr, а также игнорирую синхронизированные изменения. Тем не менее, у меня снова и снова появляется одна и та же ошибка нулевого указателя, и я не могу понять, что ее вызывает.
вот несколько методов, связанных с ошибкой
@Override
public void onVisibilityChanged(boolean visible) {
mVisible = visible;
if (visible) {
setImage(getPic());//***NULLPOINTERERROR
} else {
mHandler.removeCallbacks(getFlickrPic);
}
}
public void setImage(Bitmap bm)
{
final SurfaceHolder holder = getSurfaceHolder();
Canvas c= null;
try{
c=holder.lockCanvas();
if (c != null) {
c.setBitmap(bm);
}
} finally { if (c != null) holder.unlockCanvasAndPost(c); }
}
public Bitmap getPic()
{
Bitmap bm = null;
bm = ((BitmapDrawable) LoadImageFromWebOperations("http://farm6.static.flickr.com/5102/5655314644_b7038a5438_z.jpg")).getBitmap();
while (bm==null)
{bm = ((BitmapDrawable) getResources().getDrawable(R.drawable.no)).getBitmap();}
return bm;
}
private Drawable LoadImageFromWebOperations(String url)
{
try
{
InputStream is = (InputStream) new URL(url).openStream();
Drawable d = Drawable.createFromStream(is, "src name");
return d;
}catch (Exception e) {
System.out.println("Exc="+e);
return null;
}
}
Я получаю исключение NullPointerException для метода getPic () в методе OnVisibilityChanged (visible), отмеченном * комментарием.
Если вам нужна дополнительная информация, пожалуйста, спросите. Как я уже сказал, я не знаю, почему это дает мне эту ошибку, поэтому есть вероятность, что это что-то из кода, который я не включил.
спасибо!