Flutter项目和Android X迁移问题

时间:2019-02-24 11:37:53

标签: android flutter androidx

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

9 个答案:

答案 0 :(得分:10)

创建新项目时,只需遵循@harsh 's answer,就可以完成。

但是,当我最近升级现有应用程序以使用新的插件时,我也不得不迁移到AndroidX ...并且official instructions中的默认过程不起作用,这是使用Android Studio来完成的。迁移项目-提示“找不到用法!”。

所以我所做的是:

  1. 将Android Studio更新为3.3
  2. 尝试菜单“重构”>迁移到AndroidX
  3. 得到“未找到用法”(如果您设法在此处进行操作,请停止!完成!)
  4. 打开gradle.properties并添加
android.useAndroidX=true
android.enableJetifier=true
  1. 打开build.grade并更改

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

    • 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. 打开grade/wrapper/gradle-wrapper.properties并将distributionUrl更改为https\://services.gradle.org/distributions/gradle-4.10.2-all.zip

这与我的预期相反,确实有效! :)

答案 1 :(得分:5)

将此文件添加到您的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是可选的(如果与之相关的某些错误)。

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

答案 2 :(得分:3)

经过大量尝试,我刚刚创建了一个新的Flutter项目,然后将pubspec.yaml,lib和asset文件夹从旧项目复制到了新项目中,并解决了问题

答案 3 :(得分:1)

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

在flutter平台中,flutter将始终采用android studio的最新配置。

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

要将flutter项目迁移到AndroidX,请查看以下链接: https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility

答案 4 :(得分:1)

我遇到了类似的问题。

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

我遵循了本文中提到的步骤。而我被困在最后

不允许Android Studio从项目结构中直接打开android模块(文件夹)。所以我在android studio的新窗口中手动打开了。

Android未重构gradle testRunner classpath androidTestImplementation,它提示像是依赖关系,因此我手动替换了所有路径。

  • 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警告消失后。

答案 5 :(得分:0)

我已经使用Sam's answer成功地进行了迁移!

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.

答案 6 :(得分:0)

我最近遇到了这个问题。找了好几个小时后,我才发现这个中等页面 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”模块。在新窗口中打开项目。
  4. 现在转到工具栏中的“重构”,然后单击“迁移到AndroidX”。
  5. 然后单击“执行重构”并等待gradle构建。

答案 7 :(得分:0)

遇到同样的问题。

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

已添加 android.useAndroidX = true android.enableJetifier = true为我的android / graddle.properties。

添加所有这些后,仍无法迁移到AndroidX。这样做时,会弹出一条消息,提示“此项目中未发现使用情况”

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

android {

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

}

依赖性{

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

}

答案 8 :(得分:-1)

在我迁移到androidx后仍然无法正常工作

我只是在sdk上安装了Google Play服务,它就可以了

相关问题