Flutter 项目和 Android X 迁移问题

Flutter Projects & Android X Migration Issues

我刚刚创建了一个新的 flutter 项目,添加了一些插件,我正在将插件切换到 android x,因此我需要切换到 android x。我已经尝试了所有不同的移动到 android x 的方法,并且 none 到目前为止对我有用。现在我什至不知道该做什么了,这太令人沮丧了,为什么在自动创建新项目时不颤动处理它。可能会在项目中使用 ionic。

当您将 Android Studio 版本从 3.2 更新到 3.3 时。 Android Studio 版本 3.3 以上,您可以使用 android 库或 androidx 库,但

在flutter平台中,flutter总是采用androidstudio的最新配置。

这是用户根据androidx使用依赖报错的主要原因。

要将 flutter 项目迁移到 AndroidX,请检查此 link: https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility

创建新项目时,只需按照 即可。

然而,由于我最近升级了我现有的应用程序以使用新插件,我不得不迁移到 AndroidX 以及...并且 official instructions 中的默认过程不起作用,它正在使用 Android Studio 迁移项目 - 它说 "No usages found!"。

所以我所做的是:

  1. 已将 Android Studio 更新到 3.3
  2. 尝试过菜单重构 > 迁移到 AndroidX
  3. 得到了"No usages found"(如果你设法在这里做到了,停止!你完成了!......实际上,你可以在继续之前尝试
  4. 打开android/gradle.properties并添加
android.useAndroidX=true
android.enableJetifier=true
  1. 打开android/build.gradle并更改

    • com.android.tools.build:gradle 到版本 3.3.0
    • com.google.gms:google-services 到版本 4.2.0
  2. 打开了 android/app/build.gradle

    • 已将 compileSdkVersion 更改为 28
    • android.support.test.runner.AndroidJUnitRunner 替换为 androidx.test.runner.AndroidJUnitRunner
    • com.android.support.test:runner 替换为 androidx.test:runner:1.1.0
    • com.android.support.test.espresso:espresso-core 替换为 androidx.test.espresso:espresso-core:3.1.0
    • 在我的情况下就是这样,但这是 complete list of required replacements
  3. 打开 android/gradle/wrapper/gradle-wrapper.properties 并将 distributionUrl 更改为 https\://services.gradle.org/distributions/gradle-4.10.2-all.zip (您可能必须使用 5.4.1,请参阅下面的更新)

  4. 已执行flutter clean

与我的预期相反,它奏效了! :)

更新(2019 年 10 月 27 日)

将我的应用更新为 flutter v1.9.1+hotfix.5 时,由于我使用应用签名,我遇到了错误 SigningConfig "release" is missing required property "storePassword",最后它是第 7 步中的 gradle 版本多于。所以现在我按照 wiki.

中的建议使用 5.4.1
[android/gradle/wrapper/gradle-wrapper.properties]

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

我已经使用 Sam's !

成功迁移了
1. Open the Flutter project into Android Studio
2. Right click on the android directory and Flutter -> Open Android module in Android Studio. It asked me to upgrade my gradle plugin.
3. Then I installed Google Play Services. Tools -> SDK Manager -> SDK Tools and chek the Goolge Play Services.

我最近遇到了这个问题。找了好几个小时后,我发现了这个中等页面 https://medium.com/@swhussain110/how-to-migrate-your-flutter-app-to-androidx-9a78eaaa924b

按照以下步骤操作

  1. 在项目级别 build.gradle 将类路径更改为 com.android.tools.build:gradle:3.3.1
  2. 在应用级别 build.gradle 中将您的 compileSdkVersiontargetSdkVersion 更改为 28。
  3. 现在右键单击 flutter 项目中的 android 目录,转到 Flutter 并单击 Android Studio 中的打开 Android 模块。在新 window.
  4. 中打开项目
  5. 现在转到工具栏中的重构并单击迁移到 AndroidX。
  6. 然后单击“重构”并等待 gradle 构建。

迁移到androidx后还是不行

我只是在我的 sdk 上安装 google play 服务,它就可以工作了

将此添加到 末尾 您的 pubspec.yaml 文件,没有任何父文件:

module:
  androidX: true

然后,在 android/graddle.properties 添加:

android.useAndroidX=true
android.enableJetifier=true

运行 在您的 CLI 中:

flutter clean

并重新运行您的代码

flutter run

这可能会调整您 AndroidX 的问题。

对于你的SDK,我想你可以在里面改一下android/app/build.gradle

minSdkVersion 21
targetSdkVersion 28
multiDexEnabled true

multiDexEnabled 是可选的(以防出现与之相关的错误)。

我认为这可能会解决您的问题,请给我反馈。

经过多次尝试,我刚刚创建了一个新的Flutter项目,并将pubspec.yaml、lib和assets文件夹从旧项目复制到新项目,问题就解决了

我遇到了类似的问题。

Medium article 帮助我找到了 75% 的问题解决方案

我按照本文中提到的步骤操作。我卡在了最后

Android 工作室不允许我直接从项目结构中打开 android 模块(文件夹)。所以我在 android 工作室的新 window 中手动打开。

Android 没有重构 gradle testRunner classpath androidTestImplementation 是提示 like is dependent 于是我手动替换了所有的路径 like。

  • android.support.test.runner.AndroidJUnitRunner 替换为 androidx.test.runner.AndroidJUnitRunner
  • com.android.support.test:runner 替换为 androidx.test:runner:1.1.0
  • com.android.support.test.espresso:espresso-core 替换为 androidx.test.espresso:espresso-core:3.1.0

最后我添加到 android/gradle.properties

android.useAndroidX=true
android.enableJetifier=true

然后运行申请。 ;) 之后 androidX 警告消失了。

面临同样的问题。

在我的build.gradle中compileSdkVersion和targetSdkVersion已经设置为28。minSdkVersion设置为23。

已经添加 android.useAndroidX=真 android.enableJetifier=符合我的 android/graddle.properties.

添加所有这些后仍然无法迁移到 AndroidX。执行此操作时会弹出一条消息,提示“在此项目中未找到任何用法”

将以下代码添加到我的 app/build。gradle 解决了问题。

android {

defaultConfig {
    ...
      minSdkVersion 23 
      targetSdkVersion 28
      multiDexEnabled true
}

}

依赖项{

implementation 'com.android.support:multidex:1.0.3'

}