DataBinding + LiveData(序)

项目配置升级 (https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration)

buildToolsVersion 25.0.0 -> 27.0.3

compileSdkVersion 24 -> 27

support 24.2.0 -> 27.1.1

com.android.tools.build:gradle:2.3.3 -> com.android.tools.build:gradle:3.1.2

gradle-3.5 -> gradle-4.4

这一改,差点没把我坑死。

1,将各个项目的 dependencies 里的 compile 修改成 api。  至于 api 与 implement 的区别,可查阅 https://blog.csdn.net/soslinken/article/details/73114637。

2,子项目的 buildTypes 属性必须跟 主项目的 buildTypes 同步。如下图。绿色部分是与主项目同步过后新增的。

3,之前是通过 me.tatarka.retrolambda 插件支持 java8 lambda语法的。对于java8的支持,新版 gradle build tool 有不同的支持方式,所以需要作出迁移。然而,折腾了好久,实在没辙。什么鬼 java8 lambda 语言,傻逼逼的,kotlin在手,天下我有。https://developer.android.com/studio/write/java8-support?hl=zh-cn

4,由于compileSdkVersion = 27,apk安装android 8 系统上会呈现圆形图标(没有设置将自动生成)。所以需要在 androidManifest.xml  application 补上 android:roundIcon 属性。

5,NotificationCompat 控件从 support v7 迁移到 support v4,需要更新相关引用,并且由于 compileSdkVersion = 27 ,需要创建通道之后才能在 8.0系统以上显示通知。如下图所示:

这里关键的是 CHANNEL_ID。如果CHANNEL_ID 不一致。也是无法正常显示通知。

NotificationCompat.Builder builder =new NotificationCompat.Builder(activity, CHANNEL_ID);

6,由于 compileSdkVersion = 27,需要补充权限 android.permission.REQUEST_INSTALL_PACKAGES,否则将无法通过应用安装应用。

7,打包后安装包的位置变动,outputs/apk/xxx.apk -> outputs/apk/debug/xxx.apk,其中debug文件夹是根据打包类型而变动。由于项目持续集成系统采用 jenkins。每次打包完成之后会将安转包上传到某个文件目录以供内部测试。所以需要作出相应修改,否则将无法找到打包后的安装文件。

8,variants 一些属性的改动。坑坑坑。

你可能感兴趣的:(DataBinding + LiveData(序))