Я переключил свое приложение на MultiDexApplication, следуя инструкциям в этой ссылке - https://developer.android.com/studio/build/multidex.html.Использование MultiDexApplication приводит к тому, что applicationContext становится нулевым
Приложение теперь установлено правильно, НО мой контекст приложения имеет значение NULL. Кто-нибудь из вас испытал что-то подобное раньше?
Сообщите мне, если вам нужны образцы кода, но поскольку приложение выходит из строя, потому что оно не может получить контекст приложения, я не могу придумать какой-либо код, который бы объяснил проблему.
Получение моего контекста приложения следующим образом:
TrackerApplication.getContext();
public class TrackerApplication extends MultiDexApplication {
private static Context context;
public TrackerApplication() {
super();
context = this;
}
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
@Override
public void onCreate() {
super.onCreate();
Fabric.with(this, new Crashlytics());
}
public static Context getContext() {
return context;
}
}
Тогда, когда я звоню:
TrackerApplication.getContext().getSharedPreferences("MySettings",
Context.MODE_PRIVATE);
Я получаю NullPointer. Мой контекст приложения - null.
Добавлен тест для объяснения проблемы. В моей Launch деятельности я добавил этот код:
if (TrackerApplication.getContext() == null) {
Log.i("TEST", "Context is null");
} else {
Log.i("TEST", "What is the issue?");
}
LogCat всегда печатает Context is null
.
Где ваш код и код? –
Можете ли вы поделиться своим кодом приложения, где вы переопределите 'attachBaseContext'? – ishmaelMakitla
@MD, см. Мои правки – Lunchbox