模块开发中库R文件相关问题

简介

鄙人开发android也有一段时间了,butterKnife确实提高了开发效率但是在模块开发的时候确实也有不少的坑等着大,亲身被这些坑折磨的欲仙欲死,在此与大家分享一些心得,不喜勿喷。

资源绑定

官网: https://github.com/JakeWharton/butterknife 也有介绍

@BindView(R2.id.user)
EditText username;
@BindView(R2.id.pass)
EditText password;

重新编译后就会在本地生成R2文件

onclick事件也需要单独写,类似这样,不能合起来写,自动生成的样式会有错误

@OnClick(R2.id.user)
public void onUserClick(){}
@OnClick(R2.id.pass)
public void onPassClick(){}

隐藏的bug

当在库中使用了butterknife,但是库中的逻辑并不能满足我们的需求的时候,我们需要将库中的代码并成基类,并继承出来,这个时候,在主工程或者第二级库导包的时候,会出现一个bug。继承出来的资源id和库里面的资源id会出现冲突,因为并不是同一个R文件,相当于给一个资源两个id,这个时候我们的程序怎么样也跑不起来,但是又不知道问题在哪,报的错误乱七八糟。在这个关键时候,我们千万不要着急,下面就说下解决方法。

如何解决呢?

如果我们在库里面使用了butterknife,那我们继承出来的界面就不要在使用butterknife了,@bindView @OnClick等都不要使用了,,避免同一个资源给两个id,直接用最原始的findViewbyId,setOnClickListener就可以了

你可能感兴趣的:(模块开发中库R文件相关问题)