Flutter项目和Android X迁移问题

mar*_*lph 13 android flutter androidx

我刚刚创建了一个新的flutter项目,添加了一些插件,并且我将插件切换到了android x,因此我需要切换到android x。我尝试了所有不同的方法来迁移到android x,到目前为止,没有一种方法对我有用。现在,我什至不知道该怎么办,它是如此令人沮丧,为什么在自动创建新项目时不那么处理。可能在项目中使用离子。

Feu*_*Feu 40

在创建新项目时,只需遵循@harsh的回答,就可以完成。

但是,当我最近升级现有应用程序以使用新插件时,我也不得不迁移到AndroidX ...并且官方说明中的默认步骤不起作用,这是使用Android Studio迁移项目的过程-它说“未找到用法!”。

所以我所做的是:

  1. 将Android Studio更新为3.3
  2. 尝试过的菜单重构>迁移到AndroidX
  3. 收到“找不到使用情况”(如果您设法在此处进行操作,请停止!完成!!实际上,您可以在继续之前尝试此答案
  4. 打开android/gradle.properties并添加
android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)
  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

    • 改变compileSdkVersion28
    • 替换android.support.test.runner.AndroidJUnitRunnerandroidx.test.runner.AndroidJUnitRunner
    • 替换com.android.support.test:runnerandroidx.test:runner:1.1.0
    • 替换com.android.support.test.espresso:espresso-coreandroidx.test.espresso:espresso-core:3.1.0
    • 就我而言,就是这样,但这是所需更换完整列表
  3. 打开android/gradle/wrapper/gradle-wrapper.properties并更改distributionUrlhttps\://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
Run Code Online (Sandbox Code Playgroud)

  • 这也为我工作。@MalcolmSalvador说明中提到的gradle.properties位于android / gradle.properties中 (2认同)

小智 6

我使用Sam 的 回答成功地完成了迁移!

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.
Run Code Online (Sandbox Code Playgroud)


小智 5

它添加到年底你的pubspec.yaml文件,没有任何父:

module:
  androidX: true
Run Code Online (Sandbox Code Playgroud)

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

android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)

在您的 CLI 上运行:

flutter clean
Run Code Online (Sandbox Code Playgroud)

并重新运行您的代码

flutter run
Run Code Online (Sandbox Code Playgroud)

这可能会调整您的问题AndroidX

对于你的SDK,我想你可能会在里面改变 android/app/build.gradle

minSdkVersion 21
targetSdkVersion 28
multiDexEnabled true
Run Code Online (Sandbox Code Playgroud)

multiDexEnabled是可选的(在与之相关的一些错误的情况下)。

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