目录:
A:as里面gradle的基本了解,以及配置的区别
B:as and gradle 升级遇到的问题:
C:个人的一些感悟总结:
A.gradle版本对应:(Plugin version VS Gradle version)
可能在这里有同学就迷惑了,plugin version 跟Gradle verion 都是啥玩意呢.他们分别都在as build prject 的时候做了一些什么事儿呢.以为他们对应的规则.
plugin for gradle version And gradle version 各自的含义
plugin version: 英文给的很直观:插件的版本,这边的插件是指 gradle插件的版本,所以标题才是 plugin for gradle version,gradle的插件版本,这边一般都不会有什么问题,按照上面的图,对应填上就OK.
gradle version: gradle其实就是用Groovy语言(脚本语言)来编写的一个构建工具,用来帮我们构造程序,打包,编译,部署,依赖,签名..等等..(ps:groovy是一个脚步语言,不要把它跟as或者java混在一起,用groovy也可以写android代码...有兴趣的同学,可以去了解一下)
plugin for gradle version And gradle version 的总结
Gradle 的每个 Android 插件版本(Android Plugin for Gradle)需要与特定的 Gradle 版本相匹配才能编译成功。为了获得最佳性能,应该使用最新版本的 Gradle 和 Android 插件。
B::as and gradle 升级遇到的问题:
a:首先升级综上所有的gradle and plugin for gradle(对应版本号,切记!!!)
b:butterknife遇到的问题(version:8.8.1)
解决办法:把project.build 里面的dependenceis里面的butterknife的版本号改成8.4.0就OK(下面是解决问题链接,有兴趣多了解一点的朋友可以看看)
c:升级后,gradle给定的一些规则(会对as的编译速度,跟写法有一定的优化,具体的去google了解)
compile 替换 buildToolsVersion
升级(3.1.4之后不需要写buildToolsVersion,默认是27.0.3)
d:Unable to resolve dependency for ':app@lintOptions/compileClasspath': Could not resolve project
Gradle配置lintOptions - berber78的专栏 - CSDN博客 想了解lintOptions可以看看这个链接
e:依然是butterknife的问题.
解决:原因是因为之前用的是8.8.1的butterknife的版本在app.build的里面申请了(如下图),但是咱们改成8.4.0之后就不需要这个apply了,因为在8.4.0的时候apply过去是找不到的.所以才会报错,去掉就OK了.不会影响使用(ps:app.build下implementation butterknife的时候可以是8.8.1.只要在project.build改了就ok)
C:个人的一些感悟总结:
目前我碰到就这些问题,大家有新的问题可以随时沟通我哈.直接留言就好.我会每天都抽时间关注一下的.
我们升级到3.0之后大部分都会把编译版本的sdk也升级的到最高,会存在一些android系统兼容的问题,比如android的8.0安装问题.需要在AndroidManifest.xml中多加入一个权限(如下)
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
以及9.0p版本把javax.crypto.这个api去掉了.如果您项目中用到了,可能会出现一些问题,如果需要找替换办法请google
最近这一份工作让我收获颇多.之后我会陆续发一下大家关注的技术来共同学习一下.