NullPointerException в (MVP) getViewState() Moxy
Я установил Moxy в свой проект и установил аннотации в соответствии с документами. Но когда я запускаю приложение, оно падает с:
FATAL EXCEPTION: main
Process: com.example.project, PID: 709
java.lang.NullPointerException
at com.example.project.presentation.presenter.splash.SplashPresenter.checkLoggedInAndNavigate(SplashPresenter.java:35)
Зависимости в build.gradle:
...
// Moxy
compile 'com.arello-mobile:moxy:1.3.3'
provided 'com.arello-mobile:moxy-compiler:1.3.3'
compile 'com.arello-mobile:moxy-app-compat:1.3.3'
}
Вот интерфейс просмотра:
public interface SplashView extends MvpView {
void navigateToMainScreen();
void navigateToLoginScreen();
}
Вот действие, которое реализует эту точку зрения:
public class SplashActivity extends MvpAppCompatActivity implements SplashView {
public static final String TAG = "SplashActivity";
@InjectPresenter
SplashPresenter mSplashPresenter;
...
}
Это код, где он падает:
@InjectViewState
public class SplashPresenter extends MvpPresenter<SplashView> {
SplashModel mModel = new SplashModel();
...
public void checkLoggedInAndNavigate() {
if (checkLoggedIn()) {
getViewState().navigateToMainScreen();
} else {
getViewState().navigateToLoginScreen();
}
}
}
Когда он пытается получить ViewState (который автоматически создается аннотацией), он генерирует исключение
Что в этом плохого?
1 ответ
Решение
Вы можете попробовать заменить provided 'com.arello-mobile:moxy-compiler:1.3.3'
в annotationProcessor 'com.arello-mobile:moxy-compiler:1.3.3'
, Также я рекомендую использовать последнюю версию Moxy (сейчас это 1.4.5) и отключить jack
,