背景

在下面的R.id.rv_msg_remind 标红,然后鼠标附上去,显示attribute value must be contant.如下:

@BindView(R.id.rv_msg_remind)

然后接触android studio 有一段时间了,给出的信息并一定准确。给出的答案是属性值必须是不变的。

但是android R.id.xxx本来就是const的,这显然矛盾了,但是事情可以肯定的是是没有拿到R.id.xxx的值报错了。

这时候一个前提,我先写好了子项目,然后合并项目出的错误,我把配置拷贝了过来。

再三确定配置没有出错的情况下,我开始怀疑:

  1. 是否是一些配置冲突了。
  2. 是否是在app moudule 和lib moudule 有什么不同的地方。(我写好子项目,实在app目录下进行的,而这次引用是作为lib)

配置冲突无疑是非常头痛的问题,你不知道到底有多少验证在等着你。

但是我转念一想,配置冲突的可能性几乎微乎其微,而且同步报错的可能性极大,当然也有极小的可能性不报错,这取决于是否按照规范开发jar包,那么这种情况是最坏的打算,并且几乎不可能,暂不考虑。

然后我去google了一波官网,发现配置app moudule 与lib moudule真的不同。

解决



图中我标红了关键点,这是出错需要修改的。

  1. 我们需要依赖一个plugin
  2. 然后在子lib module 中apply.
  3. 并且呢,要使用R2。

R2是用来干什么的呢?



没错就是来获取id的。

然而当我make project 也就是编译的时候,出现了反噬性性打击。

可以看出前面已经标红了,那就是编译后出现了问题。原来是10.2.0使用的是androidx,关于androidx是google对以前包管理混乱然后又不想买单的一个举动。

其中一个报错的是:

androidx.support.annotation.AnimRes

当时我觉得androidx牛逼啊,打算升级androidx,具体可百度。

最后发现androidx 几乎不兼容android,出现了各种错误,就不再累述。

此时心中无比的慌乱,what i can do for it?我要为我愚蠢的行为买单了。

然后我把版本倒退回去,然后去官网找了下答案,原来低版本是支持android的,想想肯定也支持啊,不然以前的人怎么用,反正当时没有想到。。。。

配置如下:

classpath 'com.android.tools.build:gradle:3.3.1'
classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0'

上面是我的gradle,下面是配置的plugin。plugin需要根据gradle来确定,实践可知,详情查官网。

总结

如果需要增加一个子项目,然后不希望build的时候花费太多的事件,那么可以放在一个new project中。

但是必须要保持配置一致,比如说作为lib module,在new project中,也应该是lib module。最好是把正式开发app module中的配置,放在new project中,代码就不必拷贝。

这样能减少合并出错的可能。

最新文章

  1. Windows下Go语言的环境搭建
  2. Handler使用总结(转)
  3. XML序列化的时候如何支持Namespace
  4. R入门<二>-时间序列研究
  5. 模仿MFC封装Windows API
  6. Delphi七个版本
  7. Round and Round We Go
  8. 【Search for a Range】cpp
  9. iOS开发--动画篇之layout动画深入
  10. Testin云測公布首份国内应用质量报告:半数APP平均启动时间不合格
  11. node.js&mongodb&express 搭建个人博客系统
  12. -_-#【Mac】命令
  13. Android 的独特shell命令
  14. JAVA基础--正则表达式
  15. JS表单原生验证器
  16. 41A
  17. ethtools命令详解
  18. ssh+key
  19. 10.30 正睿停课训练 Day12
  20. 20170912xlVBA批量导入txt文件

热门文章

  1. error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'
  2. 【Mac】【SoupUI】许可证损坏问题
  3. jeson navo
  4. Composer依赖管理 – PHP的利器
  5. cognos服务器性能测试诊断分析优化过程记录
  6. 微信小程序 + thinkjs + mongoDB 实现简单的前后端交互
  7. Spring Data Jpa的四种查询方式
  8. java Random类详解
  9. 【C/C++】之C语言库函数
  10. CentOS 7 安装 bind 服务 实现内网DNS