Android升级gradle5的坑+Androidstudio3.4小彩蛋

升级gradle的的一些坑

我只是举些例子,一些类似的坑可以举一反三,不必一一细说。别自己不去找不去问,就怪我没告诉你,我没说还是我的错了?

1

studio3.2直接去升级gradle5。报错:

Caused by: java.lang.AbstractMethodError: org.jetbrains.plugins.gradle.tooling.util.ModuleComponentI
原因是gradle5在studio3.4以下有问题:
https://github.com/gradle/gradle/issues/8088
Android升级gradle5的坑+Androidstudio3.4小彩蛋_第1张图片所以需要升级studio。

2

升级studio吧,我直接升级到了studio3.4,gradle plugin用的也是3.4的,3.4的plugin对应的最小版本的gardle是
5.1.1。升级5.1.1之后刚开始run不起来,有些配置需要改。在这里看:warning先不用管,先管error。每个error下面都会有一个连接提示,照着改了就好了,不懂得可以吧error贴出来搜索怎么改。
Android升级gradle5的坑+Androidstudio3.4小彩蛋_第2张图片

3

然后有些需要升级的坑。
比如kotlin要升级到最新版。因为gradle5以后废弃了ProjectLayout.fileProperty()方法,然后用ObjectFactory.fileProperty()代替了。一些插件的gradle函数没有改,就会有问题。
看你apply了哪些plugin,然后去他们的github找源码或者和他们的服务人员确认一下,找源码太天猫费劲了,我就是直接问的。就问有没有兼容gradle5的ObjectFactory.fileProperty()。没有的话,你们就不能升级了。
Android升级gradle5的坑+Androidstudio3.4小彩蛋_第3张图片

4

有些需要引用的坑。
比如livedata,在gradle5以下默认就会引用一个,5以上默认也会引用一个,但是引用的和之前不一样了,想要用到里面的Observer< T >这个api的话,需要手动引用implementation "android.arch.lifecycle:livedata:1.1.1"才可以。

类似于这个问题的坑怎么找呢?你升级gradle肯定是切出来一个分支升的吧,升级gardle5之后,代码中哪个api没有了,就去看看之前的分支的这个地方:
在这里插入图片描述
在这里找你丢的包,点开查找丢失的api,有没有。比如这些:
Android升级gradle5的坑+Androidstudio3.4小彩蛋_第4张图片点开它去找:例如:
Android升级gradle5的坑+Androidstudio3.4小彩蛋_第5张图片找到发现有这个api。而你升级gradle5的分支中这个地方没有这个api。那就是升级gradle5的问题了,然后去搜索你丢失的那个api需要引用什么包,然后去implementation或者api随你便就好了。

5

某些智障第三方不给确认,技术支持又很高傲的情况。

比如说grade5引用华为pushSDK引用不了,失败。他们华为微信群内的技术支持自己也不知道怎么回事,QQ群里的技术支持也不回复消息,那就应该是QQ群里的他们也不知道。

反正我向华为反映这个问题半个月了,没有一个回复的,解决方法是:
原始方法拷贝jar包,拷贝资源文件。

目前网上搜索可以搜索到华为push的aar的连接。但是你敢用吗?虽然域名的确是huawei,但是官网里都没有的连接,说不定是有什么问题给下掉了呢?你敢用吗?只能用官网里文档中写的那种原始拷贝方法。

华为的技术支持的说话态度和语气真的很棒。好像他们是爸爸一样。

androidstudio3.4小彩蛋。

在这里插入图片描述Android升级gradle5的坑+Androidstudio3.4小彩蛋_第6张图片
在这里插入图片描述Android升级gradle5的坑+Androidstudio3.4小彩蛋_第7张图片可以点击右下角的笑脸哭脸,告诉谷歌你当前开心不开心。

这个世界上,也就只有我妈和谷歌关心我开不开心了。

你可能感兴趣的:(趟坑)