rjava.lang.IllegalArgumentException在调用startActivity(intent,bundle animantion)时发生。

23

嗨,我正在使用以下代码,但有时应用程序会崩溃,并显示以下错误:

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 at 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)


你能提供一份堆栈跟踪吗? - davidgiga1993
0java.lang.IllegalArgumentException 1 在android.os.Parcel.readException(Parcel.java:1553) 2 在android.os.Parcel.readException(Parcel.java:1499) 3 在android.app.ActivityManagerProxy.isTopOfTask(ActivityManagerNative.java:4465) 4 在android.app.Activity.isTopOfTask(Activity.java:5361) 5 在android.app.Activity.startActivityForResult(Activity.java:3770) 6 在android.app.Activity.startActivity(Activity.java:4003) 7 在com.tapcibo.tapcibo.uifragment.LaunchActivity.a(SourceFile:105) - Rahul Devanavar
@RahulDevanavar - 你能编辑一下你的问题吗? - andrewsi
3个回答

6
我找到了问题所在。经过深入挖掘,我发现SDK> 21(即Lollipop)存在一些问题。在我的情况下,当使用透明主题和一些进入和退出动画时,就会出现此问题。

有两个选择:

如果我删除ActivityOptions.makeCustomAnimation().toBundle();就可以正常工作。

如果我将我的主题设置为应用程序的普通主题,也可以正常工作。

我必须进一步调查,但我猜测主题上可能有一些配置导致了这个崩溃。


3
你好,你找到解决方案了吗?我也遇到了同样的问题,而且很困扰。问题是,我正在使用Theme.AppCompat.Light而不是透明主题,我还在使用ActivityCompatOptions.makeSceneTransitionAnimation,这也导致了同样的问题。 - John Ernest Guadalupe
2
你好!我也在使用Theme.AppCompat.Light.DarkActionBar,但是遇到了同样的问题。有什么解决方案吗? - Andriy Antonov

6

如果您使用ActivityCompat.startActivity(),请尝试使用ActivityOptionsCompat而不是ActivityOptions

另外,使用 ActivityOptionsCompat.makeSceneTransitionAnimation() 来制作动画选项。


0

替代

startActivity(slideactivity, bndlanimation);

使用

ActivityCompat.startActivity(this, slideactivity, bndlanimation)

为什么要使用ActivityCompat? - Rahul Devanavar
1
我遇到了同样的问题,而且我正在使用ActivityCompat。 - Marcel
1
在使用ActivityCompat.startActivity时会随机崩溃。有人找到了解决方法吗?显然这是一些Android的bug。 - Udayaditya Barua
1
当我使用ActivityCompat.startActivity并且我有一个透明主题时,它也会随机崩溃。 - Gabor Peto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接