无法将 Flutter 项目迁移到 AndroidX

Unable to migrate Flutter project to AndroidX

我在 Android Studio 中有一个 Flutter 项目。我打算迁移到 AndroidX。每当我执行 Refactor -> Migrate to AndroidX 时,Android Studio 都会显示错误消息:

You need to have compileSdk set to at least 28 in your module build.gradle to migrate to AndroidX.

但是我已经在我的 app/gradle.build 文件中设置了 compileSdkVersion 28

还有什么需要我做的吗?

在 gradle.build(应用程序)中添加此

 compileSdkVersion 28
    defaultConfig {
        ......
        minSdkVersion 21
        targetSdkVersion 28
        ......
    }

并且有一些实现需要使用 androidx :-

implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'

并将给定的两行(下方)添加到 gradle.properties:-

android.useAndroidX=true
android.enableJetifier=true

我遇到了完全相同的问题。一直在尝试迁移,因为所有新的 firebase 东西都在强制迁移,但当前的升级指南很少。首先,我尝试使用大量插件备份我的项目,但一直出现该错误,然后我创建了一个全新的 flutter 项目,其中包含所有最新的(开发频道),遵循每一步,检查每一个细节,阅读每一个论坛,但仍然 "You need to have compileSdk set to at least 28 in your module build.gradle to migrate to AndroidX."... 也匹配 https://androidxhackathon.blogspot.com/2018/05/refactor-to-android-x.html 中的步骤,但无法正确重构。 甚至去 File>ProjectStructure>Project SDK 并设置为 Android API 28 Platform。 任何人都知道我们可能会错过什么?山姆,你运气好吗?

我能够解决我的问题:

  1. 将 Flutter 项目打开到 Android Studio
  2. 右键点击android目录,点击Flutter -> 在Android Studio中打开Android模块。它要求我升级我的 gradle 插件。
  3. 然后我安装了 Google Play 服务。工具 -> SDK 管理器 -> SDK 工具并检查 Google 播放服务。

安装 Google Play 服务后,我进行了重构 -> 迁移到 AndroidX。 它开始工作了。

注意从您在步骤 2 中打开的项目 window 进行重构

点击文件中的无效 cache/Restart 选项对我有用

尝试用 app/build.gradle 中的 dependencies {...} 替换默认值:

dependencies {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
}

替换与此 link 的 "Not recommended..." 部分中发布的内容类似:https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility

如果您能解释为什么这样做,请添加评论。谢谢!

转到“文件”菜单中的 "Project structure"。清除你在那里看到的每一个问题,比如 设置android sdk,修复指定的问题

以下是我如何摆脱 "compileSdkVersion 28" 错误。但在我这样解决之前,我从 3.4.1 -> 3.5.1 升级了 Android Studio IDE。我不确定这是否真的需要。所以无论你有什么版本的IDE,看看你是否可以使用以下步骤来解决它。

  1. 转到 "Project Structure" -(IDE 右上角 AVD 管理器图标左侧的第二个图标)

  2. 在左侧导航下的 "Project Structure" 对话框中单击“项目设置”->“模块”

  3. 选择模块后,在右侧窗格中您应该会看到 3 个选项卡源、路径、依赖项

  4. 点击 Dependencies,如果出现 compileSdkVersion 28 错误,则 Dependencies 下的 SDK 版本指向低于 28 的版本 -> Select 28 或更高

5. 单击确定

  1. 现在重构->迁移到 AndroidX 对我有用

一个简单的解决方案。 按照步骤进行。

  1. 创建一个新应用 -->(在 window 中勾选 androidX)​​--> 完成
  2. 在 android --> app --> build.gradle 添加一些行,如下所示, 更新默认配置

    minSdkVersion 19
    targetSdkVersion 28
    multiDexEnabled true
    
  3. 转到 Refractor --> migrateToAndroidx
  4. 清理 Flutter
  5. 重启
  6. 运行

希望它现在有效...