2012-09-10 82 views
2

我與Android &帆布的工作,我的代碼工作完美無缺的以外,當顯示器的分辨率改變應用程序forcecloses和日誌貓展時(即旋轉設備。):NullPointerException異常旋轉的Android(顯示器的尺寸改變)

致命異常:螺紋367

顯示java.lang.NullPointerException

在... doDraw()

行它鏈接的錯誤包括:

canvas.drawARGB(255, 0, 0, 0); 

但我相信,因爲它正試圖借鑑的東西,並顯示我想畫的第一件事並不重要,只要。

這裏是我的運行循環:

 @Override 
    public void run() { 
     while (mPlaying) { 
      Canvas c = null; 
      try { 
       c = mSurfaceHolder.lockCanvas(null); 
       synchronized (mSurfaceHolder) { 
        if (mPlaying == true) updatePosition(); 
        doDraw(c); 
       } 
     } finally { 
       if (c != null) { 
        mSurfaceHolder.unlockCanvasAndPost(c); 
       } 
      } 
     } 
    } 

其中我直接從LunarLander例子了。現在每次旋轉都不會發生崩潰,但大約有75%的時間。

任何想法?謝謝:)

+0

當您旋轉屏幕,你的活性研究被破壞,而'的onCreate()'再次調用。 – tolgap

回答

0

這可能會幫助你

  if your android:targetSdkVersion="12" or less 
    android:configChanges="orientation|keyboardHidden"> 

     if your android:targetSdkVersion="13" or more 
    android:configChanges="orientation|keyboardHidden|screenSize"> 
+0

謝謝。這解決了我的問題。然而正確的格式是'android:configChanges =「keyboardHidden | orientation | screenSize」' – user1446914

+0

不能幫助我。我的android:targetSdkVersion =「15」並且在我的清單中有android:configChanges =「keyboard | keyboardHidden | orientation | screenLayout | uiMode | screenSize | smallestScreenSize」,但當我旋轉顯示屏時,該應用程序幾乎會產生一個異常... – richey

+0

There可能是另一個問題。看看你的logcat找到它 – Rajendra

相關問題