首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IllegalArgumentException in ActivityManagerProxy

IllegalArgumentException in ActivityManagerProxy
EN

Stack Overflow用户
提问于 2017-02-18 12:32:03
回答 3查看 4.5K关注 0票数 10

crashes :ActivityA以共享元素转换间歇性崩溃启动ActivityB,不一致地重复Api级别: 23、24和25

启动活动的代码:

代码语言:javascript
复制
Intent intent = new Intent(this, ActivityB.class);
Pair<View, String> logoTransition = Pair.create(logo, getString(R.string.transition_logo));
Pair<View, String> logoTextTransition = Pair.create(logoText, getString(R.string.transition_logo_text));
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(this, logoTransition, logoTextTransition);
ActivityCompat.startActivity(this, intent, options.toBundle());

Stacktrace (API 23):

代码语言:javascript
复制
Exception java.lang.IllegalArgumentException:
android.os.Parcel.readException (Parcel.java:1606)
android.os.Parcel.readException (Parcel.java:1555)
android.app.ActivityManagerProxy.isTopOfTask (ActivityManagerProxy.java:4787)
android.app.Activity.isTopOfTask (Activity.java:5753)
android.app.Activity.cancelInputsAndStartExitTransition (Activity.java:4075)
android.app.Activity.startActivityForResult (Activity.java:4052)
android.app.Activity.startActivity (Activity.java:4312)
android.support.v4.content.ContextCompat.startActivity (ContextCompat.java)
__null__.getDrawable (ContextCompat.java)
__null__.isDeviceProtectedStorage (ContextCompat.java)
com.my.app.activity.ActivityA.startMainActivity (ActivityA.java)

有人知道是什么导致了这种行为吗?有解决这个问题的建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-25 11:30:44

我认为,对于该版本,不应该使用支持库中的方法。当然,我不知道,从你现有的问题,由于随机堆栈跟踪。

自从传输场景引入4.4格式。您可以包括api降级。此外,它是推荐的,否则,为什么我们需要这两种类型?

代码语言:javascript
复制
 if (Build.VERSION.SDK_INT >= 21) {
       ActivityOptions options = ActivityOptions
      .makeSceneTransitionAnimation(this, logoTransition, logoTextTransition);
       startActivity(this, intent, options.toBundle());
    } 
  else {
       ActivityOptionsCompat options = ActivityOptionsCompat
      .makeSceneTransitionAnimation(this, logoTransition, logoTextTransition);
       ActivityCompat.startActivity(this, intent, options.toBundle());
    }
票数 5
EN

Stack Overflow用户

发布于 2017-07-06 10:45:46

在我的例子中,之所以会出现这种情况,是因为我订阅了两次单击操作,因此连续调用了两次startActivity。

希望这对某些人有帮助:)

票数 3
EN

Stack Overflow用户

发布于 2017-03-01 15:33:59

尝试在相关活动的onCreate()方法中加载转换,如下所示:

代码语言:javascript
复制
getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);

Transition mTransition = //your transitions
getWindow().setSharedElementEnterTransition(mTransition);
getWindow().setSharedElementExitTransition(mTransition);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42315167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档