点击跳转按钮后Android记账APP崩溃,ClassCastException问题求助
问题解决:ClassCastException导致Activity启动崩溃
错误根源
崩溃的核心原因是类型转换错误:你在AddTransactionActivity.kt第39行试图把AppCompatImageButton强制转换为Button,这两种控件类型不兼容,直接触发ClassCastException。
解决方案
两种修复方式任选其一即可:
方式1:修正代码中的控件类型
将findViewById的泛型类型改为与布局匹配的AppCompatImageButton(或通用的ImageButton):
findViewById<AppCompatImageButton>(R.id.closeBtn).setOnClickListener { finish() }
如果使用了View Binding,需确保自动生成的Binding类中closeBtn的类型与布局控件一致。
方式2:修正布局文件中的控件类型
若原本就计划使用普通按钮,打开AddTransactionActivity对应的布局XML,将AppCompatImageButton标签替换为Button或AppCompatButton:
<!-- 原布局代码 --> <androidx.appcompat.widget.AppCompatImageButton android:id="@+id/closeBtn" ... /> <!-- 修改后 --> <androidx.appcompat.widget.AppCompatButton android:id="@+id/closeBtn" ... />
额外注意事项
你的AndroidManifest.xml中AddTransactionActivity的android:exported设为false,同应用内从MainActivity启动它是允许的,该设置不会导致当前崩溃。若后续需要从其他应用启动此Activity,再将其改为true即可。
内容的提问来源于stack exchange,提问作者Rohan Nag
相关产品推荐
相关产品推荐

