致命例外:java.lang.illegalstateException:Can can Change Change Activity类型一旦设置

发布于 2025-02-13 14:15:29 字数 5433 浏览 3 评论 0原文

我在Android项目的Crashlytics仪表板上获得了以下堆栈Trace。我无法复制这个问题。我想了解以下堆栈Strace的更多信息,以及可能触发和复制此例外的情况。这与启动模式有关吗?

 Fatal Exception: java.lang.IllegalStateException: Can't change activity type once set: { mBounds=Rect(0, 0 - 1080, 2094) mAppBounds=Rect(0, 0 - 1080, 2094) mWindowingMode=fullscreen mActivityType=home} activityType=standard
   at android.os.Parcel.createException(Parcel.java:1974)
   at android.os.Parcel.readException(Parcel.java:1934)
   at android.os.Parcel.readException(Parcel.java:1884)
   at android.app.IActivityManager$Stub$Proxy.startActivity(IActivityManager.java:3619)
   at android.app.Instrumentation.execStartActivity(Instrumentation.java:1669)
   at android.app.Activity.startActivityForResult(Activity.java:4689)
   at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:588)
   at android.app.Activity.startActivityForResult(Activity.java:4647)
   at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:574)
   at android.app.Activity.startActivity(Activity.java:5008)
   at android.app.Activity.startActivity(Activity.java:4976)
   at com.myapp.UtilsKt.exitApplication(Utils.kt:207)
   at com.myapp.MyActivity.onBackPressed(MyActivity.java:329)
   at android.app.Activity.onKeyUp(Activity.java:3169)
   at android.view.KeyEvent.dispatch(KeyEvent.java:3383)
   at android.app.Activity.dispatchKeyEvent(Activity.java:3452)
   at androidx.core.app.ComponentActivity.superDispatchKeyEvent(ComponentActivity.java:122)
   at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:84)
   at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.java:140)
   at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:599)
   at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)
   at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:3068)
   at com.heapanalytics.android.eventdef.WindowCallbackTouchTracker$TouchInterceptingWindowCallback.dispatchKeyEvent(WindowCallbackTouchTracker.java:210)
   at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:563)
   at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:6035)
   at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5890)
   at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5343)
   at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5396)
   at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5362)
   at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5521)
   at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5370)
   at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5578)
   at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5343)
   at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5396)
   at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5362)
   at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5370)
   at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5343)
   at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5396)
   at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5362)
   at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5554)
   at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:5723)
   at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:3407)
   at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:2854)
   at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:2845)
   at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:3384)
   at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
   at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
   at android.os.MessageQueue.next(MessageQueue.java:326)
   at android.os.Looper.loop(Looper.java:181)
   at android.app.ActivityThread.main(ActivityThread.java:7073)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)


Caused by android.os.RemoteException: Remote stack trace:
at android.app.WindowConfiguration.setActivityType(WindowConfiguration.java:366)
at android.app.WindowConfiguration.setTo(WindowConfiguration.java:390)
at android.content.res.Configuration.setTo(Configuration.java:1136)
at com.android.server.wm.ConfigurationContainer.onConfigurationChanged(ConfigurationContainer.java:124)
at com.android.server.wm.ConfigurationContainer.onParentChanged(ConfigurationContainer.java:523)

是我在util.kt文件中执行的实现

fun exitApplication(activity: Activity) {
    val exitIntent = Intent(Intent.ACTION_MAIN)
        .addCategory(Intent.CATEGORY_HOME)
        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
    activity.startActivity(exitIntent)
}

@Override
public void onBackPressed() {
    exitApplication(this);
}

以下

I am getting the below stacktrace in the crashlytics dashboard for my Android project. I could not reproduce the issue. I would like to know more about the below stackstrace and the possible scenario in which this exception could be triggered and reproduced. Is this anything to do with launch mode?

 Fatal Exception: java.lang.IllegalStateException: Can't change activity type once set: { mBounds=Rect(0, 0 - 1080, 2094) mAppBounds=Rect(0, 0 - 1080, 2094) mWindowingMode=fullscreen mActivityType=home} activityType=standard
   at android.os.Parcel.createException(Parcel.java:1974)
   at android.os.Parcel.readException(Parcel.java:1934)
   at android.os.Parcel.readException(Parcel.java:1884)
   at android.app.IActivityManager$Stub$Proxy.startActivity(IActivityManager.java:3619)
   at android.app.Instrumentation.execStartActivity(Instrumentation.java:1669)
   at android.app.Activity.startActivityForResult(Activity.java:4689)
   at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:588)
   at android.app.Activity.startActivityForResult(Activity.java:4647)
   at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:574)
   at android.app.Activity.startActivity(Activity.java:5008)
   at android.app.Activity.startActivity(Activity.java:4976)
   at com.myapp.UtilsKt.exitApplication(Utils.kt:207)
   at com.myapp.MyActivity.onBackPressed(MyActivity.java:329)
   at android.app.Activity.onKeyUp(Activity.java:3169)
   at android.view.KeyEvent.dispatch(KeyEvent.java:3383)
   at android.app.Activity.dispatchKeyEvent(Activity.java:3452)
   at androidx.core.app.ComponentActivity.superDispatchKeyEvent(ComponentActivity.java:122)
   at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:84)
   at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.java:140)
   at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:599)
   at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)
   at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:3068)
   at com.heapanalytics.android.eventdef.WindowCallbackTouchTracker$TouchInterceptingWindowCallback.dispatchKeyEvent(WindowCallbackTouchTracker.java:210)
   at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:563)
   at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:6035)
   at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5890)
   at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5343)
   at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5396)
   at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5362)
   at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5521)
   at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5370)
   at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5578)
   at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5343)
   at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5396)
   at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5362)
   at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5370)
   at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5343)
   at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5396)
   at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5362)
   at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5554)
   at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:5723)
   at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:3407)
   at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:2854)
   at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:2845)
   at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:3384)
   at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
   at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
   at android.os.MessageQueue.next(MessageQueue.java:326)
   at android.os.Looper.loop(Looper.java:181)
   at android.app.ActivityThread.main(ActivityThread.java:7073)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)


Caused by android.os.RemoteException: Remote stack trace:
at android.app.WindowConfiguration.setActivityType(WindowConfiguration.java:366)
at android.app.WindowConfiguration.setTo(WindowConfiguration.java:390)
at android.content.res.Configuration.setTo(Configuration.java:1136)
at com.android.server.wm.ConfigurationContainer.onConfigurationChanged(ConfigurationContainer.java:124)
at com.android.server.wm.ConfigurationContainer.onParentChanged(ConfigurationContainer.java:523)

Following is the implementation that I did in my util.kt file

fun exitApplication(activity: Activity) {
    val exitIntent = Intent(Intent.ACTION_MAIN)
        .addCategory(Intent.CATEGORY_HOME)
        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
    activity.startActivity(exitIntent)
}

Following is the onBackPressed implementation of my MyActivity.java

@Override
public void onBackPressed() {
    exitApplication(this);
}

Any help or guidance on this problem would help me to solve this problem

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

此岸叶落 2025-02-20 14:15:29

将您的活动启动模式“标准”更改为任何其他启动模式。

Change your activity launch mode "standard" to any other launch mode.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文