Получение NullPointerException при попытке получить размер экрана - PullRequest
0 голосов
/ 05 ноября 2011

Это мой код, в котором я получаю исключение 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);
}

Логкат говорит:

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

Я пробовал множество других способов получить ширину и высоту экрана, но ни один из них не работает. Любые советы?

Ответы [ 3 ]

2 голосов
/ 05 ноября 2011

Я думаю, что проблема вызывает setContentView() до super.onCreate(), это может быть строка 27.

0 голосов
/ 05 ноября 2011

Вы также можете попробовать этот код:

 Display d=((WindowManager)this.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
 width=d.getWidth();
 height=d.getHeight();
0 голосов
/ 05 ноября 2011

Код ниже работает нормально, поэтому проблема в другом месте, попробуйте поместить операторы 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...