Unable to resume activity with java.lang.IllegalArgumentException on Android api >=24

11,893
            catch (Exception e) {
                if (!mInstrumentation.onException(r.activity, e)) {
                    throw new RuntimeException(
                        "Unable to resume activity "
                        + r.intent.getComponent().toShortString()
                        + ": " + e.toString(), e);
                }
            }

it's a chained exeption so inspect e.getCause() stacktrace -> till cause will be null

if you'll not find it look at the method in activity thread which invokes try block:

try {
  r.activity.onStateNotSaved();
  r.activity.mFragments.noteStateNotSaved();

  if (r.pendingIntents != null) {
    deliverNewIntents(r, r.pendingIntents);
    r.pendingIntents = null;
  }

  if (r.pendingResults != null) {
    deliverResults(r, r.pendingResults);
    r.pendingResults = null;
  }

  r.activity.performResume();

  // If there is a pending local relaunch that was requested 
  // when the activity was
  // paused, it will put the activity into paused state
  // when it finally happens.
  // Since the activity resumed before being relaunched, 
  // we don't want that to happen,
  // so we need to clear the request to relaunch paused.

  for (int i = mRelaunchingActivities.size() - 1; i >= 0; i--) {
    final ActivityClientRecord relaunching =
    mRelaunchingActivities.get(i);

    if (relaunching.token == r.token
        && relaunching.onlyLocalRequest &&
        relaunching.startsNotResumed) {
            relaunching.startsNotResumed = false;
    }
 }
}

you'll need to search for reason in:

  • Activity.onStateNotSaved();
  • Activity.mFragments.noteStateNotSaved();
  • Activity.performResume();
  • and final Activity.onNewIntent()
    Caused by java.lang.IllegalArgumentException
        at android.os.Parcel.readException(Parcel.java:1697)
        at android.os.Parcel.readException(Parcel.java:1646)
        at android.app.ActivityManagerProxy.isTopOfTask (ActivityManagerNative.java:6600)
        at android.app.Activity.isTopOfTask(Activity.java:6142)
        at android.app.Activity.onResume(Activity.java:1331)

and best shot it's an answer for this issue:

rjava.lang.IllegalArgumentException on startActivity(intent,bundle animantion)

Share:
11,893

Related videos on Youtube

Jiyeh
Author by

Jiyeh

Updated on April 24, 2020

Comments

  • Jiyeh
    Jiyeh about 4 years

    There is a crash in my app on devices running version 7.0, 7.1.1 and 8.0.0 with the following stacktrace:

    Fatal Exception: java.lang.RuntimeException: Unable to resume activity {xxx/xxx.views.activities.HomeActivity}: java.lang.IllegalArgumentException
       at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3788)
       at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3828)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2991)
       at android.app.ActivityThread.-wrap14(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1635)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6692)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
    Caused by java.lang.IllegalArgumentException
       at android.os.Parcel.readException(Parcel.java:1697)
       at android.os.Parcel.readException(Parcel.java:1646)
       at android.app.ActivityManagerProxy.isTopOfTask(ActivityManagerNative.java:6600)
       at android.app.Activity.isTopOfTask(Activity.java:6142)
       at android.app.Activity.onResume(Activity.java:1331)
       at android.support.v4.app.FragmentActivity.onResume(FragmentActivity.java:485)
       at xxx.views.activities.BaseActivity.onResume(BaseActivity.java:50)
       at xxx.views.activities.HomeActivity.onResume(HomeActivity.java:364)
       at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1277)
       at android.app.Activity.performResume(Activity.java:7058)
       at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3765)
       at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3828)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2991)
       at android.app.ActivityThread.-wrap14(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1635)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6692)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
    

    My code on the reported lines is simply:

    // HomeActivity class
    @Override
    public void onResume() {
        mPresenter.onResume();
        super.onResume();
    
        renderView();
    }
    
    // BaseActivity class
    @Override
    protected void onResume() {
        super.onResume();
        // some other code
    }
    

    I did some digging about this and found this similar question.

    Since the IllegalArgumentException thrown contains no detail message, I am going to try putting in extra logs as suggested here.

    Meanwhile please appreciate any help!

    • JoxTraex
      JoxTraex over 6 years
      The super.onResume should be call first thing in your onResume method call.
    • Ani
      Ani over 6 years
      @JoxTraex onResume is the first thing in the onResume method. But it doesn't fix it. I am also facing same issue in my project.
    • JoxTraex
      JoxTraex over 6 years
      Have you tested android L 5.1.x?
    • Zhanbolat Raimbekov
      Zhanbolat Raimbekov about 6 years
      Same here on Android 7 and 8. Have you found a solution?
    • milosmns
      milosmns almost 5 years
      Your stack trace also shows: at xxx.views.activities.HomeActivity.onResume(HomeActivity.java‌​:364). This is something custom? Looks like you didn't post all of the code you're using
    • Adriana C.
      Adriana C. over 4 years
      I have the same problem, does anyone have other solutions?
  • Pnemonic
    Pnemonic about 5 years
    the problem is with onResume, not onRestoreInstanceState
  • Darshna Desai
    Darshna Desai about 5 years
    Can you please explain, how accessing static variable or method in onResume() can cause this issue?
  • Ajay Mehta
    Ajay Mehta almost 5 years
    I clearly mentioned that while research, i found that solution. I have also mentioned that issue might also be possible if you trying to access static variables on onResume() method.
  • Adriana C.
    Adriana C. over 4 years
    I have a similar problem, do you know other solutions?
  • Vytautas Berankis
    Vytautas Berankis over 4 years
    What kind of problem ?
  • NateS
    NateS about 4 years
    Voodoo is not an answer.