Skip to content

NullPointerException in ViewDelegates #46

Open
@Nocri

Description

@Nocri

In a legacy project using EasyMVP have a @CustomView extending LinearLayout and for some reason it throws NPE in attachView (everything extends AppCompatActivity, so it's not related to #34) and in PresenterLoaderCallbacks.onLoaderReset

Is this project still alive? Could You provide me some help with that?
It's using version 1.0.5 of easyMVP

The app returns to screen containing this custom view after opening another activity for result (it might be some hint)

Custom view presenter:

It has actually one method doin thing specific for our model, so i'll hide that one for readability, but the body of presenter:

public class AddressPresenter extends BasePresenter<AddressView> {

    public AddressPresenter() {
    }

    public void geocode(Context context, double lat, double lng) {
        // RxJava stuff
    }

}

Custom view:

As above, just the body, to keep it clean:

@CustomView(presenter = AddressPresenter.class)
public class AddressForm extends LinearLayout implements AddressView {

}

Attach view NPE

Line of code causing crash:

    presenter.onViewAttached((AddressView)view);

Sony Xperia Z5 Compact (E5823), 2048MB RAM, Android 7.1

java.lang.RuntimeException:

  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2720)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2781)
  at android.app.ActivityThread.handleRelaunchActivity (ActivityThread.java:4615)
  at android.app.ActivityThread.-wrap19 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1514)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:241)
  at android.app.ActivityThread.main (ActivityThread.java:6274)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:886)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:776)

Caused by: java.lang.NullPointerException:

  at xx.xx.mobile.ui.widget.address.AddressForm_ViewDelegate.attachView (AddressForm_ViewDelegate.java:33)
  at xx.xx.mobile.ui.widget.address.AddressForm.onAttachedToWindow (AddressForm.java)
  at android.view.View.dispatchAttachedToWindow (View.java:15561)
  at android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java:2916)
  at android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java:2923)
  at android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java:2923)
  at android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java:2923)
  at android.view.ViewGroup.dispatchAttachedToWindow (ViewGroup.java:2923)
  at android.view.ViewGroup.addViewInner (ViewGroup.java:4456)
  at android.view.ViewGroup.addView (ViewGroup.java:4258)
  at android.view.ViewGroup.addView (ViewGroup.java:4198)
  at android.view.ViewGroup.addView (ViewGroup.java:4171)
  at android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1309)
  at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState (FragmentManager.java:1528)
  at android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1595)
  at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated (FragmentManager.java:2900)
  at android.support.v4.app.FragmentController.dispatchActivityCreated (FragmentController.java:201)
  at android.support.v4.app.FragmentActivity.onStart (FragmentActivity.java:603)
  at android.support.v7.app.AppCompatActivity.onStart (AppCompatActivity.java:178)
  at android.app.Instrumentation.callActivityOnStart (Instrumentation.java:1249)
  at android.app.Activity.performStart (Activity.java:6737)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2683)

onLoaderReset NPE

Line of code causing crash:

      delegate.get().detachView();

Samsung Galaxy S7 Edge (hero2lte), 4096MB RAM, Android 8.0

java.lang.RuntimeException:

  at android.app.ActivityThread.performDestroyActivity (ActivityThread.java:4605)
  at android.app.ActivityThread.handleDestroyActivity (ActivityThread.java:4623)
  at android.app.ActivityThread.-wrap5 (Unknown Source)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1757)
  at android.os.Handler.dispatchMessage (Handler.java:105)
  at android.os.Looper.loop (Looper.java:164)
  at android.app.ActivityThread.main (ActivityThread.java:6944)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)

Caused by: java.lang.NullPointerException:

  at xx.xx.mobile.ui.widget.address.AddressForm_ViewDelegate$PresenterLoaderCallbacks.onLoaderReset (AddressForm_ViewDelegate.java:96)
  at android.support.v4.app.LoaderManagerImpl$LoaderInfo.destroy (LoaderManager.java:357)
  at android.support.v4.app.LoaderManagerImpl.doDestroy (LoaderManager.java:832)
  at android.support.v4.app.FragmentHostCallback.doLoaderDestroy (FragmentHostCallback.java:285)
  at android.support.v4.app.FragmentController.doLoaderDestroy (FragmentController.java:420)
  at android.support.v4.app.FragmentActivity.onDestroy (FragmentActivity.java:391)
  at android.support.v7.app.AppCompatActivity.onDestroy (AppCompatActivity.java:209)
  at android.app.Activity.performDestroy (Activity.java:7470)
  at android.app.Instrumentation.callActivityOnDestroy (Instrumentation.java:1255)
  at android.app.ActivityThread.performDestroyActivity (ActivityThread.java:4592)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions