致命例外:java.lang.illegalstateException:Can can Change Change Activity类型一旦设置
我在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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将您的活动启动模式“标准”更改为任何其他启动模式。
Change your activity launch mode "standard" to any other launch mode.