【问题标题】:Unable to migrate Flutter project to AndroidX无法将 Flutter 项目迁移到 AndroidX
【发布时间】:2019-06-21 01:43:32
【问题描述】:

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

您需要在模块 build.gradle 中将 compileSdk 设置为至少 28 才能迁移到 AndroidX。

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

我还有什么需要做的吗?

【问题讨论】:

    标签: android-studio flutter androidx


    【解决方案1】:

    我能够解决我的问题:

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

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

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

    【讨论】:

    • 我试过了,但是我的“Flutter”菜单声音被禁用了,我不知道如何打开“Open Android”菜单声音。
    • @GiacomoMasseroniChiaro 我也有同样的问题imgur.com/2C4EnIH你运气好吗?它适用于 iOS 模块
    • @GiacomoMasseroniChiaro 如果你想关注github.com/flutter/flutter/issues/28791,我已经在 Flutter 存储库中提出了这个问题
    • @Jerry 我在工具 -> Flutter 中没有这样的条目
    • 是的,它成功了。还要添加一件事 - 有时需要在所有内容安装/升级后等待完成其进程。
    【解决方案2】:

    这是我摆脱“compileSdkVersion 28”错误的方法。但在我以这种方式解决之前,我将 Android Studio IDE 从 3.4.1 -> 3.5.1 升级。我不确定这是否真的需要。所以不管你有什么版本的IDE,看看能不能用下面的步骤来解决。

    1. 转到“项目结构”-(IDE 右上角 AVD Manager 图标左侧的第二个图标)

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

    3. 选择模块后,在右侧窗格中您应该会看到 3 个选项卡 Sources、Paths、Dependencies

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

    5.点击确定

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

    【讨论】:

      【解决方案3】:

      在 gradle.build (app) 中添加这个

       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
      

      【讨论】:

      • 感谢您的回复。我会尝试并更新线程
      • 我尝试了你的建议,但仍然显示相同的错误
      【解决方案4】:

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

      【讨论】:

      • 我将尝试@Deepansu 的建议。如果它没有任何运气,那么我将卸载 Android Studio,然后再次尝试导入该项目。将更新帖子
      • 运气好吗? @艾伦·贝迪安
      • 不,花了几个小时尝试调试,但不确定是否有人能够运行迁移到 AndroidX 功能。再次,创建干净的准系统项目,按照所有步骤,compileSdkVersion 和 targetSdkVersion 为 28,将所有实现更改为 androidx 等效项,启用 gradle.properties,并使用我能想到的所有其他东西,仍然说“你需要将 compileSdk 设置为至少 28"... 运行最新的 Android Studio 3.3(在 Windows 上)、Flutter 1.2.0 等。我们还能缺少什么?有没有人让它正确迁移?
      • 我也尝试卸载并重新安装我的 Android Studio 但仍然给出同样的错误... :-(
      • @AlanBedian “在 Android Studio 中打开 Android 模块”是什么意思?您能否提供更多细节,以便我可以尝试相同的解决方案?谢谢!
      【解决方案5】:

      点击无效缓存/从文件重新启动选项对我有用

      【讨论】:

        【解决方案6】:

        尝试将 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'
        }
        

        替换类似于此链接中“不推荐...”部分中发布的内容:https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility

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

        【讨论】:

          【解决方案7】:

          转到“文件”菜单中的“项目结构”。清除您在那里看到的每个问题,例如 设置android sdk,修复指定问题

          【讨论】:

            【解决方案8】:

            一个简单的解决方案。 按照步骤操作。

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

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

            希望它现在可以工作......

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2019-07-08
              • 1970-01-01
              • 2019-06-27
              • 2019-09-14
              • 2021-01-12
              • 1970-01-01
              • 2019-11-29
              相关资源
              最近更新 更多