gpt4 book ai didi

android - 不明白 Android 中的 java.lang.ClassCastException 错误

转载 作者:行者123 更新时间:2023-11-29 15:26:30 25 4
gpt4 key购买 nike

我通过 Acra 收到了 Android 应用程序的错误报告。堆栈跟踪中我的代码中没有引用行号。我怎么知道问题出在我的代码上?谁能帮助我。

堆栈跟踪:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.itse.htsurvey/com.itse.htsurvey.Question2Page2Activity}: java.lang.ClassCastException: android.widget.CompoundButton$SavedState cannot be cast to android.widget.AbsSpinner$SavedState
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1815)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1831)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3188)
at android.app.ActivityThread.access$600(ActivityThread.java:122)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1028)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4123)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassCastException: android.widget.CompoundButton$SavedState cannot be cast to android.widget.AbsSpinner$SavedState
at android.widget.AbsSpinner.onRestoreInstanceState(AbsSpinner.java:421)
at android.view.View.dispatchRestoreInstanceState(View.java:8316)
at android.view.ViewGroup.dispatchThawSelfOnly(ViewGroup.java:2038)
at android.widget.AdapterView.dispatchRestoreInstanceState(AdapterView.java:766)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2024)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2024)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2024)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2024)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2024)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2024)
at android.view.View.restoreHierarchyState(View.java:8295)
at com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState(PhoneWindow.java:1489)
at android.app.Activity.onRestoreInstanceState(Activity.java:898)
at android.app.Activity.performRestoreInstanceState(Activity.java:870)
at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1099)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1793)
... 12 more
java.lang.ClassCastException: android.widget.CompoundButton$SavedState cannot be cast to android.widget.AbsSpinner$SavedState
at android.widget.AbsSpinner.onRestoreInstanceState(AbsSpinner.java:421)
at android.view.View.dispatchRestoreInstanceState(View.java:8316)
at android.view.ViewGroup.dispatchThawSelfOnly(ViewGroup.java:2038)
at android.widget.AdapterView.dispatchRestoreInstanceState(AdapterView.java:766)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2024)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2024)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2024)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2024)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2024)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2024)
at android.view.View.restoreHierarchyState(View.java:8295)
at com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState(PhoneWindow.java:1489)
at android.app.Activity.onRestoreInstanceState(Activity.java:898)
at android.app.Activity.performRestoreInstanceState(Activity.java:870)
at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1099)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1793)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1831)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3188)
at android.app.ActivityThread.access$600(ActivityThread.java:122)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1028)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4123)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
at dalvik.system.NativeStart.main(Native Method)

我的代码 com.itse.htsurvey.Question2Page2Activity: http://pastebin.com/gPYyZ0GH

编辑 1:更多信息 - 我认为这可能是因为小部件 ID 冲突。 savedState 部分表示这是在 Activity 重新创建之后发生的?此布局由动态添加的 View /布局组成,并在运行时为它们指定 ID。

编辑 2:只是为了确认在所有已完成的测试中,这是我第一次收到此错误。我无法重现它。

编辑 3:当我改变设备的方向时,我能够重现错误。我该如何解决这个问题?

最佳答案

在阅读 onSaveInstanceState 和 onRestoreInstanceState 之后。我添加了以下代码。我已经保存了所有 View 的状态,因此不需要 onSaveInstanceState 和 onRestoreInstanceStat 的默认实现。

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
saveEnteredData();
}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {

}

关于android - 不明白 Android 中的 java.lang.ClassCastException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12155245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com