I am trying to change from one screen to another after a user has signed up. The user is created but I get a java.lang.NullPointerException when I call the view interface from the presenter. Here is the part in the presenter that creates the user and prompts the change to a login screen.
public void signUp() {
postUserUseCase.setWyat_user(user);
subscription = postUserUseCase
.execute()
.subscribeOn(rx.schedulers.Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<User>() {
@Override
public void onCompleted() {
Log.d("complete","complete");
signUpView.showLoginScreen();
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(User user) {
Log.d("next",user.getEmail());
}
});
}
SignupActivity implements the view interface's showLoginScreen method.
public class SignUpActivity extends AppCompatActivity implements SignUpView {
@Override
public void showLoginScreen() {
Intent loginIntent = new Intent(this,LoginActivity.class);
startActivity(loginIntent);
}
}
The user is created but I get a null pointer onCompleted.
EDIT: This is different from What is a NullPointerException, and how do I fix it? because if I did the initializing of an interface I get a whole class with the methods that my activity will override. This is a view interface not a variable or a class.I just want to call on method.
EDIT 2: Logcat for the error.
01-14 14:41:49.359 28309-28309/com.wyat.wyat E/AndroidRuntime: FATAL EXCEPTION: main java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread. at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:62) at android.os.Handler.handleCallback(Handler.java:605) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4517) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:995) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762) at dalvik.system.NativeStart.main(Native Method) Caused by: rx.exceptions.OnCompletedFailedException at rx.observers.SafeSubscriber.onCompleted(SafeSubscriber.java:90) at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.checkTerminated(OperatorObserveOn.java:272) at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:207) at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55) at android.os.Handler.handleCallback(Handler.java:605) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4517) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:995) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NullPointerException at com.wyat.wyat.accounts.presenters.SignUpPresenter$1.onCompleted(SignUpPresenter.java:92) at rx.observers.SafeSubscriber.onCompleted(SafeSubscriber.java:84) at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.checkTerminated(OperatorObserveOn.java:272) at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:207) at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55) at android.os.Handler.handleCallback(Handler.java:605) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4517) at java.lang.reflect.Method.invokeNative(Native Method)