ButterKnife java.lang.ClassCastException: android.view.View cannot be cast to android.app.Activity

本文解决了ButterKnife在绑定视图过程中出现的类型转换异常问题。错误原因为将View类型的视图错误地声明为TextView,导致ButterKnife无法正确绑定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天使用ButterKnife报以下错误:

                                        Caused by: java.lang.ClassCastException: android.view.View cannot be cast to android.app.Activity
                                                                   at butterknife.internal.Finder$2.getContext(Finder.java:35)
                                                                   at butterknife.internal.Finder.getResourceEntryName(Finder.java:111)
                                                                   at butterknife.internal.Finder.castView(Finder.java:82)
                                                                   at hibaby.expert.course.live.LiveActivity_ViewBinding.<init>(LiveActivity_ViewBinding.java:32)
                                                                   at hibaby.expert.course.live.LiveActivity_ViewBinder.bind(LiveActivity_ViewBinder.java:13)
                                                                   at hibaby.expert.course.live.LiveActivity_ViewBinder.bind(LiveActivity_ViewBinder.java:10)
                                                                   at butterknife.ButterKnife.bind(ButterKnife.java:125)
                                                                   at hibaby.expert.course.live.LiveActivity.onCreate(LiveActivity.java:67)
                                                                   at android.app.Activity.performCreate(Activity.java:6161)
                                                                   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112)

经过检查,发现,并非是ButterKnife.bind(Activity)错误,而是声明的对象中,有一个View类型的视图,被声明成了TextView而导致的错误。ButterKnife不能正确打印此错误,不知道算不算他们的BUG。


    //更正前
    @BindView(R.id.v_left)
    TextView tvLeft;
    //更正后
    @BindView(R.id.v_left)
    View tvLeft;

OK,问题解决。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值