Rjava.lang.IllegalArgumentException on startActivity (намерение, анимация пакетов)

Привет, я использую следующий код, но иногда приложение сбойно с ошибкой:

java.lang.IllegalArgumentException в startActivity (slideactivity, bndlanimation);

if (android.os.Build.VERSION.SDK_INT >= 16) {
       Bundle bndlanimation = ActivityOptions.makeCustomAnimation(getApplicationContext(), R.anim.slide_in, R.anim.slide_out).toBundle();
       startActivity(slideactivity, bndlanimation);
     } else
       startActivity(slideactivity);
       finish();

Вот журналы сбоев

java.lang.IllegalArgumentException 1 at android.os.Parcel.readException(Parcel.java:1553) 2 at android.os.Parcel.readException(Parcel.java:1499) 3 at android.app.ActivityManagerProxy.isTopOfTask(ActivityManager Native.java:4465) 4 в android.app.Activity.isTopOfTask(Activity.java:5361) 5 at android.app.Activity.startActivityForResult(Activity.java:37 70) 6 at android.app.Activity.startActivity(Activity.java:4003) 7 at com.tapcibo.tapcibo.uifragment.LaunchActivity.a(SourceFile: 1 05)

Ответ 1

Попробуйте использовать ActivityOptionsCompat вместо ActivityOptions, если вы используете ActivityCompat.startActivity(). Также используйте ActivityOptionsCompat.makeSceneTransitionAnimation(), чтобы сделать варианты анимации.

Ответ 2

Я нашел проблему, после глубокого рытья я увидел, что есть проблема с SDK > 21, так что леденец. В моем случае это происходит при использовании прозрачной темы вместе с некоторыми переходами ввода и вывода.

Два варианта:

Если я удалю ActivityOptions.makeCustomAnimation(). toBundle(); и снова работайте хорошо.

Если я установлю свою тему на свое приложение, нормальная тема тоже хорошо работает.

Мне нужно будет исследовать дальше, но я думаю, что есть определенная конфигурация на тему, которая делает этот сбой.

Ответ 3

вместо

startActivity(slideactivity, bndlanimation);

использование

ActivityCompat.startActivity(this, slideactivity, bndlanimation)