Android Нулевой контекст приложения в Activity.onCreate () - PullRequest
0 голосов
/ 28 мая 2020

Этот код в Activity

public void onCreate(Bundle bundle)
{
    super.onCreate(bundle);
    DisplayMetrics metrics = App.getAppContext().getResources().getDisplayMetrics(); //crash
}

иногда создает NullPointerException.

Это настраиваемый класс приложения:

public class App extends Application
{
    private static Context context;

    public void onCreate() {
        super.onCreate();
        context = getApplicationContext();
    }

    public static Context getAppContext()
    {
        return context;
    }
}

Как может NullPointerException исправить?

Ответы [ 2 ]

2 голосов
/ 28 мая 2020

Замените:

DisplayMetrics metrics = App.getAppContext().getResources().getDisplayMetrics();

на:

DisplayMetrics metrics = getResources().getDisplayMetrics();

Мало того, что вам здесь не нужен Application, все, что связано с GUI, должно использовать Activity в любом случае.

0 голосов
/ 28 мая 2020

Вам не нужно App.getAppContext()

просто

 DisplayMetrics metrics = getResources().getDisplayMetrics();

или

DisplayMetrics metrics = this.getResources().getDisplayMetrics();

или

DisplayMetrics metrics = getApplicationContext().getResources().getDisplayMetrics();
...