【Flutter 专题】43 图解 Flutter 适配 AndroidX

小菜在尝试一些三方库时,会提示与 androidx 不兼容,小菜整理一下尝试步骤;
首先需要了解一下 Android 的基本情况,目前已经由 V7 发展到 androidx,主要避免包越来越臃肿的问题,而 Android 的新特性也会在 androidx 中进行优化增加;与之而来的挑战是适配问题,support 包与 androidx 不兼容,二者存一,在项目中需要好好斟酌;
小菜未适配 androidx 时引入三方库时会提示如下问题;此时用谷歌亲儿子工具 AndroidStudio 可以方便很多;

适配步骤
1. 更新至最新的 distributionUrl
文件路径:android/gradle/wrapper/gradle-wrapper.properties

2. 更新 build.gradle 中 classpath 与 Kotlin 版本
文件路径:classpath,此时注意 Kotlin 版本升至 1.3.0 及以上;

3. 添加 androidx 配置
文件路径:android/gradle.properties
android.useAndroidX=true 代表使用 androidx 库而非 support 库;
android.enableJetifier=true 代表三方包迁移至 androidx

4. 更新 Module 中 build.gradle SDK 版本
文件路径:android/app/build.gradle,此时注意除了当前 SDK 版本升级之后,androidTestImplementation 也许随着升级;

注意事项
1. 建议手动逐步操作而非 Migrate to AndroidX
小菜在测试时尝试用 AndroidStudio 自带的 Migrate to AndroidX 方式无效,后手动逐步操作,可能是小菜操作有误或其他,可以尝试一下;
选择本工程 -> Refactor -> Migrate to Androidx

2. 兼容其他三方库
小菜在使用三方库时部分库未进行 androidx 适配,包括小菜自己发布的 pub 库,不兼容需适配升级;对于此类情况,我们可以选择不升级至 androidx 用较低版本的 pub 库,或尝试升级不兼容的三方库,需根据实际情况衡量;

3. Kotlin 1.3.0
小菜在升级 Kotlin 版本时提示 jre7:1.3.0 版本找不到;

文件路径:android/app/build.gradle,此时需要将 dependencies 中 jre7 替换为 jdk8 即可;

以上是小菜在升级适配过程中遇到的小问题,内容浅显,有错误的地方请多多指导!
来源:阿策小和尚
版权声明: 本文为 InfoQ 作者【阿策小和尚】的原创文章。
原文链接:【http://xie.infoq.cn/article/0a2c9256cf10b42efaf1b0c67】。文章转载请联系作者。
评论