使用ButterKnife报错,记录一下,

本文详细介绍了在Android项目中集成ButterKnife的过程及常见问题解决方案,包括因SDK版本过高导致的资源找不到错误和@OnClick事件无响应的问题。通过调整ButterKnife版本和SDK版本,以及正确添加依赖和注解处理器,可以有效解决这些问题。

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

错误描述:问题1:

在gradle中引入: implementation 'com.jakewharton:butterknife:10.1.0'
项目 在编译:butterknife ”build 时报下面的错误

error: resource android:attr/fontVariationSettings not found

error: resource android:attr/ttcIndex not found

然后网上查找原因,各种方法都试过之后,确定是因为是sdk版本太高造成的,然后将

build.gradle 中的 compileSdkVersion 版本号改为 27,

并且将butterknife 版本号也修改为上个项目中的8.8.1,才编译通过。

implementation 'com.jakewharton:butterknife:8.8.1',

问题2:在Activity中使用时,发现butterknife 的 @OnClick 点击事件没响应,仔细检查之后才发现是自己粗心大意了,在添加依赖的时没有将下面第二个天加上,重新添加编译,运行,完美解决。在此记录一下,长长记性。

implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

ps:在fragment中使用(需要解绑)

private Unbinder unbinder;

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {     

    View view = inflater.inflate(R.layout.fragment_regist_create,container,false);

    unbinder = ButterKnife.bind(this, view);//需要加多一个加载了布局的View对象

    return view;

}

@Override public void onDestroyView() {

    super.onDestroyView();     

    unbinder.unbind();//fragment需要解绑

}

ps:在查找解决问题的过程中,发现了一篇介绍butterknife的好文章,讲解的很清楚,一起转载过来,方便以后自己学习查看

ButterKnife的使用详解

https://www.cnblogs.com/SongYongQian/p/7967202.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值