一段时间没玩Flutter,今天打开一个项目编译了一下,突然发现不能编译了,出现

Launching lib\main.dart on Nokia X6 in debug mode...

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:preDebugBuild'.
> Android dependency 'androidx.appcompat:appcompat' has different version for the compile (1.0.-beta01) and runtime (1.1.-alpha02) classpath. You should manually set the same version via DependencyResolution * Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 15s
*******************************************************************************************
The Gradle failure may have been because of AndroidX incompatibilities in this Flutter app.
See https://goo.gl/CP92wY for more information on the problem and how to fix it.
*******************************************************************************************
Gradle task assembleDebug failed with exit code
Exited (sigterm)

大概意思是说,安卓依赖在编译时和运行时出现了不同的版本,因为有了AndroidX的出现。

可能在你使用的依赖package的时候,你会注意到他们的更新日志,其中会有Migrate to AndroidX。

原因:

由于之前的Android.support包管理过于混乱,所以Google推出了AndroidX。如果各位开发者有时间的话,还是要尽量升级一下项目到AndroidX,毕竟这个是未来,谷歌的新标准。

怎么升级,错误信息已经给出了提示,进入 https://goo.gl/CP92wY

①使用Android Studio自动升级

确保Android Studio版本是最新版,或者至少3.2以上。

打开你的项目,选中android文件夹,右键选择,Flutter,Open Android Module in Android Studio。

这个时候会打开一个新窗口,等它分析完成之后,选择Refactor——Migrate to AndroidX。

检测完成后,下方出现提示,提示需要升级的地方,确认后点击“Do Refector”

升级完成后,关闭窗口即可。

这个时候你再编译Flutter,就没问题啦~~~~~~~~~~~~

②手动升级到AndroidX(不推荐)

谷歌提示不推荐这个方法,麻烦,而且搞不好容易出错。

不过如果你没有安装Android Studio,你得采用这个手动升级的办法。

a)打开android/gradle/wrapper/gradle-wrapper.properties,修改distributionUrl的值,

distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip

b)打开android/build.gradle,修改com.android.tools.build:gradle 到3.3.0

dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
}

c)打开android/gradle.properties,添加两行

android.enableJetifier=true
android.useAndroidX=true

d)打开android/app/build.gradle,在android{里面,确保compileSdkVersion 和 targetSdkVersion 值为28。

替换所有过时的依赖库android.support到androidx。

例如替换,需要一一查找。

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

为新的

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

在dependencies{里面,替换

androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

为新的

androidTestImplementation 'androidx.test.runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'

Flutter - Migrate to AndroidX的更多相关文章

  1. Migrate to AndroidX 遇到的坑

    Androidx 迁移方法: 首先把 gradle 版本改为3.2.0以上,以及 compileSdkVersion 为28以上 然后 Android Studio 菜单栏 Refactor -> ...

  2. Jetpack 迁移到 androidX support MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  3. [Android Pro] AndroidX了解一下

    cp : https://blog.csdn.net/qq_17766199/article/details/81433706 1.说明 官方原文如下: We hope the division be ...

  4. Android:你好,androidX!再见,android.support

    1.AndroidX简介 点击查看Android文档中对androidx的简介 按照官方文档说明 androidx 是对 android.support.xxx 包的整理后产物.由于之前的suppor ...

  5. Flutter 1.7 正式版发布

    今天,我们非常高兴地向大家宣布又一个正式版本的发布 -- Flutter 1.7,这是继上次 I/O 时众多重要功能发布以来的一次小更新.Flutter 1.7 包含了对 AndroidX 的支持,满 ...

  6. Android 支持库迁移到AndroidX

    一.背景 Android系统版本在不断更新,从最初的Android 1.0到现在Google和各大手机厂商正在推的Android 10,平均下来每个年头都有一个大的版本更新.但用户正在用的手机上的An ...

  7. android开发导包升级到androidx踩坑记录【转载】

    最近一直在做安卓开发,奈何手中的资料比较老,资料上的一些Import经常没有,十分让人头疼. 感谢简书上的[张晴天天天天天]做的整理. 在这里也记录一下备用. 升级Android Studio后,在 ...

  8. Android X 相关汇总

    一.说明 官方原文如下: We hope the division between android.* and androidx.* makes it more obvious which APIs ...

  9. [技术博客]Android 开发 Bug Log

    [技术博客] Android 开发 Bug Log 大大小小的bug,聪明的愚蠢的都有, 持续记录中...... java.lang.IllegalArgumentException: The sty ...

随机推荐

  1. Confluence 6 你模板中可用的对象

    包含宏正文和参数,下面的 Confluence 对象在宏中可用: $body 宏的正文(如果宏有正文的话) String $paramfoo, $parambar, ...$param<name ...

  2. 移动端点击出现阴影 css解决方案

    a,img,button,input,textarea,div{-webkit-tap-highlight-color:rgba(255,255,255,0);}

  3. 移动端touchstart,touchmove,touchend

    近段时间使用html5开发一个公司内部应用,而触摸事件必然是移动应用中所必须的,刚开始以为移动设备上或许也会支持鼠标事件,原来是不支持的,好在webkit内核的移动浏览器支持touch事件,并且打包成 ...

  4. Rational Rose 2007下载、安装和破解

    一.文件下载 (1)DAEMON Tools Lite(虚拟光驱)下载地址 链接:https://pan.baidu.com/s/19L1FT6T1MlyhkfXyobd26A 提取码:drfs (2 ...

  5. Mybaits动态Sql

    什么是动态SQL? MyBatis的强大之处便是它的动态SQL,如果你使用JDBC那么在根据不同条件查询时,拼接SQL语句是多么的痛苦. 比如查询一个学生信息,可以根据学生的姓名,性别,班级,年龄,学 ...

  6. sql中某条件不为空,可能有的小祖宗会喷了,这还用总结?emmm,我渣,我觉得有一点意思对于第二种(土味)

    需求说明:存在父子关系的单表,父级别的parent_id为空,那么要得到所有的子级别的数据信息,查询的条件就是:父id不为空. 个人做法:where parent_id is not null or ...

  7. Software tips

    1.Microsoft office professional plus 2013秘钥 PD3W7-NVGG7-YKGQX-7CRDG-J2MG7(test success)MTGRC-8BM6H-W ...

  8. 卸载列表信息——Uninstall注册表

    今天用InstallShield打包了一个安装程序,安装顺利完成了,但是当我去控制面板准备卸载时,发现我的程序没有详细的信息,正常的软件信息如下图: 而我的程序没有发布者,大小和版本,也没有图标,于是 ...

  9. IDEA上创建 Maven SpringBoot项目发布到Tomcat

    概述 上篇记录了IDEA上创建Maven SpringBoot+mybatisplus+thymeleaf 项目,但是如何将SpringBoot发布到Tomcat,直接采用Maven 命令Clear- ...

  10. 【bzoj1264】[AHOI2006]基因匹配Match 树状数组

    题解: 一道比较简单的题目 容易发现状态数只有5*n个 而转移需要满足i1<i2;j1<j2 那么很明显是二维平面数点 暴力一点就是二维树状数组+map 5nlog^3 比较卡常 但是注意 ...