由于各大应用市场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

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

更多相关文章

  1. 在Ubuntu上下载、编译和安装Android最新源代码
  2. Android系统源代码情景分析 第3版
  3. 总结安卓各大版本(4.0-9.0)的区别、新特性
  4. Android最佳实践之:代码性能优化——Strict Mode介绍
  5. Android第一行代码学习笔记三----广播

随机推荐

  1. Windows下通过cmd进入DOS窗口访问MySQL数
  2. Mysql快速插入千万条数据的实战教程
  3. mysql-joins具体用法说明
  4. MySQL之MHA高可用配置及故障切换实现详细
  5. MySQL8.0.23版本的root密码重置最优解法
  6. MySQL中查询json格式的字段实例详解
  7. 一台linux主机启动多个MySQL数据库的方法
  8. MySQL如何从不固定位置提取字符串元素详
  9. MySQL双主(主主)架构配置方案
  10. 详解MySQL实时同步到Oracle解决方案