Android——填坑android studio2.3.3升级到android studio3.2

由于各大应用市场android p版本的到来,对于没有适配的应用越来越严格,而android studio 2.3.3最高支持androd 26版本的sdk。没得办法了,还是得升级到3.2最新版本吧。
说实话,android 2.3.3用起来还是比较习惯了,网上关于3.2坑确实很多。
没办法还是花了大半天做升级。
主要有下面几个大坑:
坑1:
老项目大部分是使用compile做项目依赖的,而新的studio废气了这个,新增Implementation 和api关键字。
由于网上很多教程都是把compile 用implementation 替换了,如果你参考新建的demo也是这样。虽然你会发现有一些module明明有依赖关系在2.3.3还是好的,怎么突然不行了。
简单来说implementation依赖的module不对外,而api等同于compile,最简单做法就是直接把compile用api替换。
二者区别,参考上篇博文。
坑2:
如果老的module代码里面还依赖了比较老的android包,比如23的啊,25的啊,可能会导致编译不过。最好统一改成28+吧。
还有某些design包的一些类可能包名改了,编译不过需要重新导包。
坑3:
如果集成了老的谷歌admob广告,我们在app 的gradle下面会有这么一句:

apply plugin: 'com.google.gms.google-services'

这个使用如果升级了,你会发现编译不过,说compile过时了,请使用implementation或者api。
这个时候,你查看gradle发现都替换了。但是把这行代码注释掉又OK了。
最终原因在于,
在工程下的gradle使用的google-services模块版本较老,估计里面有使用compile,这个时候你得替换成新版本。
比如我的老版本是:

//classpath 'com.google.gms:google-services:3.0.0'

替换成新版本:

classpath 'com.google.gms:google-services:3.2.1'

再次编译通过。
坑4:
在android p版本上面访问网络可能会出现访问不了的情况,这个时候,请增加一个xml配置,参考:
https://blog.csdn.net/xyx2999/article/details/82909582

好了,先写到这。欢迎评论。

Basillee wechat