После обновления до API 27 и библиотеки поддержки 27.0.2 я внезапно получаю много этих трассировок стека в Crashlytics:
Fatal Exception: java.lang.IllegalArgumentException
at android.os.Parcel.readException(Parcel.java:1544)
at android.os.Parcel.readException(Parcel.java:1493)
at android.app.ActivityManagerProxy.isTopOfTask(ActivityManagerNative.java:5108)
at android.app.Activity.isTopOfTask(Activity.java:5688)
at android.app.Activity.startActivityForResult(Activity.java:3973)
at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(Source:54)
at android.support.v4.app.FragmentActivity.startActivityForResult(Source:67)
Я называю это так:
ActivityOptions options = ActivityOptions.makeCustomAnimation(activity, R.anim.slide_in_from_right, R.anim.fade_out);
startActivityForResult( intent, REQ_ACTION, options.toBundle());
Я не могу прочитать исходный код, так как он еще не выпущен. Я даже пытался заменить и использовать код андроида-26, но он другой.
Для приведенного выше вызова есть предупреждение о том, что BaseFragmentActivityApi16.startActivityForResult может вызываться только из той же группы библиотек, поэтому я исправил это с помощью ActivityCompat, но я не думаю, что это решит проблему сбоя.
Это проблема платформы или я могу это исправить?
Изменить
if (Build.VERSION.SDK_INT >= 21) {
ActivityOptions options = ActivityOptions.makeCustomAnimation(activity, R.anim.slide_in_from_right, R.anim.fade_out);
startActivityForResult(intent, REQ_ACTION, options.toBundle());
} else {
ActivityOptions options = ActivityOptions.makeCustomAnimation(activity, R.anim.slide_in_from_right, R.anim.fade_out);
ActivityCompat.startActivityForResult(this, intent, REQ_ACTION, options.toBundle());
}
Если я изменю его на указанное выше по ссылке в моем комментарии, Android Studio будет жаловаться, как указано выше. Это может быть связано с проблемой.