Android as升级到最新版本存在的问题(gradle升级)

目录: 

           A:as里面gradle的基本了解,以及配置的区别

           B:as and gradle 升级遇到的问题:

           C:个人的一些感悟总结:

A.gradle版本对应:(Plugin version VS  Gradle version)

《Android as升级到最新版本存在的问题(gradle升级)》 版本对应图(as最高版本是3.2)

可能在这里有同学就迷惑了,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(对应版本号,切记!!!)

《Android as升级到最新版本存在的问题(gradle升级)》 gradle version(本项目是3.1.4 as,gradle verison:4.4)
《Android as升级到最新版本存在的问题(gradle升级)》 plugin for gradle version(其实这边就是可以理解成你as的版本,按照上图相对应就好)

b:butterknife遇到的问题(version:8.8.1)

《Android as升级到最新版本存在的问题(gradle升级)》 升级遇到这个问题 99.9%都是因为butterknife的版本

解决办法:把project.build 里面的dependenceis里面的butterknife的版本号改成8.4.0就OK(下面是解决问题链接,有兴趣多了解一点的朋友可以看看)

Error:Unable to find method ‘com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;’ · Issue #1130 · JakeWharton/butterknife · GitHub

c:升级后,gradle给定的一些规则(会对as的编译速度,跟写法有一定的优化,具体的去google了解)

compile 替换 buildToolsVersion 

升级(3.1.4之后不需要写buildToolsVersion,默认是27.0.3)

《Android as升级到最新版本存在的问题(gradle升级)》 错误信息(给出的很明白,不过多解释了

d:Unable to resolve dependency for ‘:app@lintOptions/compileClasspath’: Could not resolve project

《Android as升级到最新版本存在的问题(gradle升级)》 出现上面的错误一般都是说你的lintOptions放在builTyoes里面了,应该放到androi{}目录下

Gradle配置lintOptions – berber78的专栏 – CSDN博客 想了解lintOptions可以看看这个链接

e:依然是butterknife的问题.

《Android as升级到最新版本存在的问题(gradle升级)》 无法获取到LinkApp….Task这个东西,

解决:原因是因为之前用的是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)

《Android as升级到最新版本存在的问题(gradle升级)》 删除此行,代码正常(skr.skr)

 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

最近这一份工作让我收获颇多.之后我会陆续发一下大家关注的技术来共同学习一下.

    原文作者:多少人_b21f
    原文地址: https://www.jianshu.com/p/942bfda73659
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞