You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安卓应用崩溃报AppCompatImageView无法转TextView错误求排查

错误根因

核心为类型转换异常:你在HomeVerAdapter的ViewHolder中把rating变量声明为TextView类型,但对应布局home_vertical_item.xml中ID为rating的控件实际是ImageView类型,系统尝试将AppCompatImageView强转为TextView时触发崩溃。

具体不匹配位置

  • Adapter侧错误声明:
// ViewHolder中错误将rating定义为TextView
TextView name, timing, rating, price;
  • 布局侧实际控件:
<!-- id=rating的控件实际为ImageView类型 -->
<ImageView
    android:id="@+id/rating"
    android:layout_width="70dp"
    android:layout_height="70dp"
    android:src="@drawable/ratingbar"
    .../>

修复方案

根据业务需求选择任意一种即可:

  1. 若要保留rating为图片控件(展示星星评分图),修改ViewHolder的变量声明:
public class ViewHolder extends RecyclerView.ViewHolder{
    ImageView imageView, rating; // 将rating调整为ImageView类型
    TextView name, timing, price;
    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        imageView = itemView.findViewById(R.id.ver_img);
        name = itemView.findViewById(R.id.name);
        timing= itemView.findViewById(R.id.timing);
        rating= itemView.findViewById(R.id.rating);
        price = itemView.findViewById(R.id.price);
    }
}
  1. 若要保留rating为文本控件(展示分数数值),修改布局中id=rating的控件类型为TextView,调整对应属性即可。

补充:你布局中rating图片旁已经有一个展示评分数值的无ID TextView,如果你需要使用这个文本,给它添加android:id="@+id/rating_text"属性,再在ViewHolder中声明对应TextView ratingText变量绑定即可。

内容的提问来源于stack exchange,提问作者Biran Kirui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 09:45:06