【Flutter 专题】43 图解 Flutter 适配 AndroidX
![【Flutter 专题】43 图解 Flutter 适配 AndroidX](https://static001.geekbang.org/infoq/89/89657a0d2341cfb87b4c063c7fc901e7.jpeg)
小菜在尝试一些三方库时,会提示与 androidx 不兼容,小菜整理一下尝试步骤;
首先需要了解一下 Android 的基本情况,目前已经由 V7 发展到 androidx,主要避免包越来越臃肿的问题,而 Android 的新特性也会在 androidx 中进行优化增加;与之而来的挑战是适配问题,support 包与 androidx 不兼容,二者存一,在项目中需要好好斟酌;
小菜未适配 androidx 时引入三方库时会提示如下问题;此时用谷歌亲儿子工具 AndroidStudio 可以方便很多;
![](https://static001.geekbang.org/infoq/8b/8bc2397c719213ee7a369201cdf88dfc.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
适配步骤
1. 更新至最新的 distributionUrl
文件路径:android/gradle/wrapper/gradle-wrapper.properties
![](https://static001.geekbang.org/infoq/41/41d0262945f24d52f07b346e63dc65fc.webp?x-oss-process=image/resize,p_80/format,jpg)
2. 更新 build.gradle 中 classpath 与 Kotlin 版本
文件路径:classpath,此时注意 Kotlin 版本升至 1.3.0 及以上;
![](https://static001.geekbang.org/infoq/63/637ee226fe639b8dcbe698ecd4a71de4.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
3. 添加 androidx 配置
文件路径:android/gradle.properties
android.useAndroidX=true 代表使用 androidx 库而非 support 库;
android.enableJetifier=true 代表三方包迁移至 androidx
![](https://static001.geekbang.org/infoq/71/71c0f5894fefdf9256f9d28601c0008b.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
4. 更新 Module 中 build.gradle SDK 版本
文件路径:android/app/build.gradle,此时注意除了当前 SDK 版本升级之后,androidTestImplementation 也许随着升级;
![](https://static001.geekbang.org/infoq/e2/e289e28e1b08da38d561d6e8272c392f.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
注意事项
1. 建议手动逐步操作而非 Migrate to AndroidX
小菜在测试时尝试用 AndroidStudio 自带的 Migrate to AndroidX 方式无效,后手动逐步操作,可能是小菜操作有误或其他,可以尝试一下;
选择本工程 -> Refactor -> Migrate to Androidx
![](https://static001.geekbang.org/infoq/e9/e99bcb92c5b31f8b8279d38f3c730b95.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
2. 兼容其他三方库
小菜在使用三方库时部分库未进行 androidx 适配,包括小菜自己发布的 pub 库,不兼容需适配升级;对于此类情况,我们可以选择不升级至 androidx 用较低版本的 pub 库,或尝试升级不兼容的三方库,需根据实际情况衡量;
![](https://static001.geekbang.org/infoq/4d/4dd75942203db1a0900c4d9eaad8c251.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
3. Kotlin 1.3.0
小菜在升级 Kotlin 版本时提示 jre7:1.3.0 版本找不到;
![](https://static001.geekbang.org/infoq/9b/9ba0e8a72658fa1105e395e45ce67c10.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
文件路径:android/app/build.gradle,此时需要将 dependencies 中 jre7 替换为 jdk8 即可;
![](https://static001.geekbang.org/infoq/74/7482e6470fc57993c699aa4c5e1dd08a.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
以上是小菜在升级适配过程中遇到的小问题,内容浅显,有错误的地方请多多指导!
来源:阿策小和尚
版权声明: 本文为 InfoQ 作者【阿策小和尚】的原创文章。
原文链接:【http://xie.infoq.cn/article/0a2c9256cf10b42efaf1b0c67】。文章转载请联系作者。
评论