【发布时间】:2017-11-02 11:19:14
【问题描述】:
实现了活动到活动共享元素的转换。它工作正常,但在运行> = LOLLIPOP 的极少数设备上收到崩溃。
报告:
Fatal Exception: java.lang.IllegalArgumentException
at android.os.Parcel.readException(Parcel.java:1550)
at android.os.Parcel.readException(Parcel.java:1499)
at android.app.ActivityManagerProxy.isTopOfTask(ActivityManagerNative.java:4654)
at android.app.Activity.isTopOfTask(Activity.java:5557)
at android.app.Activity.startActivityForResult(Activity.java:3903)
at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:65)
at android.app.Activity.startActivity(Activity.java:4146)
at com.mypackage.Activity1.method1(Activity1.java:414).
试过这个:
Intent intent = new Intent(Activity1.this, Activity2.class);
ActivityOptionsCompat options = ActivityOptionsCompat.
makeSceneTransitionAnimation(Activity1.this,
logoImageView,
ViewCompat.getTransitionName(logoImageView));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
startActivity(intent, options.toBundle());
} else {
startActivity(intent);
}
overridePendingTransition(R.anim.stay, R.anim.stay);
那么这个来自IllegalArgumentException in ActivityManagerProxy:
Intent intent = new Intent(Activity1.this, Activity2.class);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
ActivityOptions options = ActivityOptions
.makeSceneTransitionAnimation(Activity1.this,
logoImageView,
getString(R.string.splashLogoSharedTransition));
startActivity(intent, options.toBundle());
} else {
ActivityOptionsCompat options = ActivityOptionsCompat.
makeSceneTransitionAnimation(SplashActivity.this,
logoImageView,
getString(R.string.splashLogoSharedTransition));
ActivityCompat.startActivity(SplashActivity.this, intent, options.toBundle());
}
overridePendingTransition(R.anim.stay, R.anim.stay);
这两个代码都发生了崩溃:
startActivity(intent, options.toBundle());
遇到过吗?有什么提示吗?
【问题讨论】:
-
不应该是
new Intent(Activity1.this, Activity2.class)吗? -
@ShahiM 是的,复制错误。已更正。
-
并且
logoImageView具有属性:android:transitionName="myTransition" -
是的,它有。甚至 Activity2 中的图像视图也具有相同的过渡。 v21/styles.xml 也有
- true
-
我看不到代码有任何其他可能的问题。在我的一个项目中,我的代码完全相同。
标签: android animation android-activity shared-element-transition