内容简介:Google又双叒升级了引入依赖的方式由原来的
Google又双叒升级了 Android 的开发库,我们将根目录下的 build:gradle 版本由原先的 2.3.3 升级至 3.1.2 ,随之带来的问题是 Support Library 也需要升级。升级之后, gradle 脚本以及 support 包下相关类的 Api 发生了重大的改动。具体需要注意的改动如下:
build.gradle 文件
引入依赖的方式由原来的 compile 变更为现在的 implementation 和 api 关键字,这两个关键字的区别在于是否能传递依赖,例如:
注意:使用旧的关键字 compile 进行依赖应用并不会报错,只会报警告。使用 implementation 可以提升编译速度。
Support Library 27
新的 support 包带来便捷的新特性,如自带生命周期组件中的 android.arch.lifecycle:runtime 库,但对现有代码对兼容带来不小的麻烦。
:warning:最明显的变化就是 Fragment 中的 getActivity() 以及 getContext() 方法返回的被标记为 @Nullable , 也就是返回值可能为 null , 于是在 Kotlin 中所有获取 Activity 、 Context 实例的地方都需要判空操作。
其实 Google 并没有更改代码逻辑,返回 null 是因为 fragment 没有加入到 actiivty 中,这个逻辑处理之前的版本就存在,只是相比之前加上 @Nullable 注解,具体可以看这里的解释: https://stackoverflow.com/a/49289578/7077907 。
如何更好的兼容之前的代码?直接加 !! 处理是没有问题的,如果你觉得这样写过于丑陋并且看起来十分危险,可以用 activity ? : return 这样的写法代替,或者更好的方式是使用 Google 新提供的方法:
requireActivity() requireContext()
这两个方法的返回值是不为 null 的,内部作了判空抛异常处理。具体文档可看源码或这里: https://developer.android.com/topic/libraries/support-library/revisions#27-1-0。
以上。
关注公众号,了解更多哦~:point_down:
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- eclipse下maven项目复制之变动
- BadgerDB 1.6.0 发布,API 变动很大
- PHP使用GD库合并简单图片并变动部分颜色
- iOS 13 正式发布,来看看有哪些 API 变动
- 使用libev监视文件夹下文件(夹)属性变动的方案和实现
- [译] 使用分析师报告中含有的情感信息预测上市公司股价变动
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
ActionScript 3.0 Cookbook
Joey Lott、Darron Schall、Keith Peters / Adobe Dev Library / 2006-10-11 / GBP 28.50
Well before Ajax and Microsoft's Windows Presentation Foundation hit the scene, Macromedia offered the first method for building web pages with the responsiveness and functionality of desktop programs......一起来看看 《ActionScript 3.0 Cookbook》 这本书的介绍吧!