2011-11-05 34 views
0

這是我的代碼中,我得到NullPointerException異常:試圖讓屏幕尺寸時,遇到了NullPointerException異常

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    setContentView(R.layout.realplay); 
    super.onCreate(savedInstanceState); 
    //setContentView(new RealPlayView(this)); 

    DisplayMetrics dm = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(dm); 
    String str_ScreenSize = "The Android Screen is: " 
       + dm.widthPixels 
       + " x " 
       + dm.heightPixels; 

    TextView mScreenSize = (TextView) findViewById(R.id.textview); 
    mScreenSize.setText(str_ScreenSize); 
} 

的logcat的說:

11-04 18:26:24.404: E/AndroidRuntime(15324): Caused by: java.lang.NullPointerException 
11-04 18:26:24.404: E/AndroidRuntime(15324): at com.synamegames.stackem.RealPlayActivity.onCreate(RealPlayActivity.java:27) 
11-04 18:26:24.404: E/AndroidRuntime(15324): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
11-04 18:26:24.404: E/AndroidRuntime(15324): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
11-04 18:26:24.404: E/AndroidRuntime(15324): ... 11 more 

我試過無數量的其它獲得屏幕寬度和高度的方法,但它們都不起作用。有小費嗎?

+2

這行是27? – jamapag

回答

0

下面的代碼正常工作,所以問題在其他地方,請嘗試放置Log語句或在調試模式下運行以查找空指針的位置。

DisplayMetrics dm = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(dm); 
    String str_ScreenSize = "The Android Screen is: " 
       + dm.widthPixels 
       + " x " 
       + dm.heightPixels; 
    Log.i("",str_ScreenSize); 
2

我認爲這個問題是調用setContentView()super.onCreate()之前,這可能是27行

0

你可以試試這個代碼也:

Display d=((WindowManager)this.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
width=d.getWidth(); 
height=d.getHeight();