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

Android应用崩溃:TextureView无法强制转换为TextView

解决Android应用崩溃:TextureView无法转换为TextView的问题

嘿,这个问题我刚学Android的时候也踩过坑!咱们先从Logcat的错误信息入手,java.lang.ClassCastException: android.view.TextureView cannot be cast to android.widget.TextView已经把问题说得明明白白了——你在代码里把一个TextureView控件强制转换成了TextView,这两种控件是完全不同的类型,系统肯定会直接崩溃。

具体解决步骤:

  • 打开你RecyclerView item对应的布局文件layout_item.xml,找到ID为name、address、email、phone的四个控件。
  • 逐个检查它们的标签类型:比如是不是不小心把<TextView>写成了<TextureView>?或者复制粘贴的时候选错了控件类型?
  • 把错误的TextureView标签全部改成<TextView>(如果用的是AppCompat库,也可以用<androidx.appcompat.widget.AppCompatTextView>),保存布局文件后重新编译运行。

额外提示:

  1. 其实Android Studio在你写代码的时候,如果布局里的控件类型和代码里的强转类型不匹配,会在代码行旁边显示黄色的警告,下次可以多留意这些提示,提前避免问题。
  2. 推荐使用View Binding替代手动findViewById,它会自动生成对应控件的类型,完全不用手动强转,能从根源上避免这类类型转换错误。

附上你提供的代码方便参考:

class SearchViewHolder extends RecyclerView.ViewHolder{
    public TextView name,address,email,phone;
    public SearchViewHolder(View itemView){
        super(itemView);
        name = (TextView)itemView.findViewById(R.id.name);
        address = (TextView)itemView.findViewById(R.id.address);
        email = (TextView)itemView.findViewById(R.id.email);
        phone = (TextView)itemView.findViewById(R.id.phone);
    }
}

public class SearchAdapter extends RecyclerView.Adapter<SearchViewHolder>{
    private Context context;
    private List<Friend> friends;

    public SearchAdapter(Context context, List<Friend> friends) {
        this.context = context;
        this.friends = friends;
    }

    @Override
    public SearchViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(parent.getContext());
        View itemView = inflater.inflate(R.layout.layout_item,parent,false);
        return new SearchViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(@NonNull SearchViewHolder holder, int position) {
        holder.name.setText(friends.get(position).getName());
        holder.address.setText(friends.get(position).getAddress());
        holder.email.setText(friends.get(position).getEmail());
        holder.phone.setText(friends.get(position).getPhone());
    }

    @Override
    public int getItemCount() {
        return friends.size();
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:24:56