前言
今天Android Studio推送了3.0正式版,升级之后遇到了几个问题,记录下来,避免再犯
改变高版本源码
首先就是 findViewById 的改动,看源码得知
底层的源码做了改动,不用再每次都强转View,
@SuppressWarnings("TypeParameterUnusedInFormals")
@Override
public T findViewById(@IdRes int id) {
return getDelegate().findViewById(id);
}IDE
如图所示,会有提示,IDE并且已经支持KotlinJava8,这样的新特性诱惑,不得不升级啊
问题
anim
以前是这样写的
@anim/bottomview_anim_enter
@anim/bottomview_anim_exit
编译并没有问题,但是升级了之后提示bottomview_anim_exit找不到,IDE并且也跳转不到
去掉了@编译通过
anim/bottomview_anim_enter
anim/bottomview_anim_exit
findViewById
在 api 26之后,源码进行了改变,如果使用Kotlin,会报错
Type inference failed: Not enough information to infer parameter T in fun findViewById(p0: Int): T!
Please specify it explicitly.
主要是因为返回的泛型是不明确的,kotlin不能推断出类型
findViewById(id)
可改为
findViewById(id)
即可编译通过
gradle version
如果升级到 3.x 版本遇到了 gradle build 问题
将 com.novoda:bintray-release 升级到0.5.0即可
改进
gradle升级到3.0.0
compile依赖改为implementation or api
建议是如果implementation依赖没问题,那就用implementation,如果有问题改为api,因为api就是以前的compile,只不过是改个名字