0

我将 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(由注释自动生成)时,它会抛出异常

那有什么问题?

4

1 回答 1

2

您可以尝试替换provided 'com.arello-mobile:moxy-compiler:1.3.3'annotationProcessor 'com.arello-mobile:moxy-compiler:1.3.3'. 另外,我建议使用最新版本的 Moxy(现在是 1.4.5)并禁用jack.

于 2017-02-15T07:52:54.397 回答