由于各大应用市场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. Android编译系统入门(一)
  2. 总结安卓各大版本(4.0-9.0)的区别、新特性
  3. Android(安卓)如何将定制的Launcher成为系统中唯一的Launcher
  4. Android开发便签7:如何让通讯录匹配N位号码
  5. Android高人必修 Ant 编译Android工程
  6. Android(安卓)8.0 学习(4)---Android通用内核
  7. Android(安卓)项目编译过程
  8. 在Ubuntu上下载、编译和安装Android最新源代码
  9. android studio运行编译速度慢的解决方法

随机推荐

  1. Android Ble开发出现的问题
  2. android 查看MD5认证指纹
  3. android 自定义商城app价格正序倒序控件
  4. android 9.0 在rk3326平台上hidl的使用
  5. Android HttpGet和HttpPost设置超时
  6. Android Localization
  7. 【Android】 ProcessBuild Process su 命
  8. 自定义控件5---TypedArray和AttributeSet
  9. android,NDK, write logs to a file
  10. Android遍历某个文件夹的图片并实现滑动