2011-04-27 89 views
0

我正在寫一個livewallpaper將拉動圖片來自Flickr和讓他們的背景,並更改每隔一段時間的。現在,我已經存根/忽略/規避Flickr的一部分,我忽略了定時也會改變。仍然我一遍又一遍地有相同的空指針錯誤,我無法弄清楚是什麼導致它。的Android空指針問題livewallpaper無法確定原因

這裏是與錯誤

@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; 
       } 
      } 

我不斷收到的方法方法GetPic()在OnVisibilityChanged(可視)方法一個NullPointerException異常的幾種方法,指出與*註釋。

如果有任何需要更多的信息請詢問。就像我說的,我不知道爲什麼它給我這個錯誤所以有可能是從代碼的東西我還沒有包括在內。 謝謝!如果錯誤occures

回答

0

LoadImageFromWebOperations返回null。在getPic中,你嘗試在LoadImageFromWebOperations的返回值上調用getBitmap() - 如果返回的值爲null 你試圖調用null對象的getBitmap(),這會導致你的NPE

1

那是多少一個構造?

while (bm==null) { 
    bm = ((BitmapDrawable) getResources().getDrawable(R.drawable.no)).getBitmap(); 
} 

這看起來邪惡......

無論如何,你的問題是以下行:

bm = ((BitmapDrawable) LoadImageFromWebOperations("http://farm6.static.flickr.com/5102/5655314644_b7038a5438_z.jpg")).getBitmap() 

LoadImageFromWebOperations可以返回null。在這種情況下,你還叫getBitmap()一個空引用...

+0

那麼首先是結構是那裏繞過一個可能的空指針的一種方式,所以它會我摸不着出來後要及時清除。當我更改LoadImageFromWebOperations的聲明,以便它或者返回網頁圖片或返回本地一個(所以沒有空的機會)我得到相同的錯誤... – rhunsulrana 2011-04-27 15:05:46

+0

給我們的錯誤的完整stacktrace – WarrenFaith 2011-04-27 17:17:30