在尝试了官方文档中提到的所有内容后,如何将我在Android Studio中的fluttter项目迁移到Android X兼容性?

时间:2019-06-14 06:08:10

标签: android-studio flutter dart androidx targetsdkversion

我一直在Android应用程序中构建Flutter应用程序,一切正常,当我使用GeoLocator库时,我的应用程序崩溃了,说明它与AndroidX不兼容。当我尝试将代码迁移到AndroidX时,它说:“您需要在模块build.gradle中将compileSDK设置为至少28,才能迁移到AndroidX。我已经将其设置为28,但仍然无法正常工作。

为了解决此问题。我已经尝试了Flutter文档中提到的所有步骤。 链接:https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility

1. In android/gradle/wrapper/gradle-wrapper.properties change the line starting with distributionUrl like this:

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


2. In android/build.gradle, replace:

dependencies {
    classpath 'com.android.tools.build:gradle:3.2.1'
}
by

dependencies {
    classpath 'com.android.tools.build:gradle:3.3.0'
}

3. In android/gradle.properties, append
android.enableJetifier=true
android.useAndroidX=true


4.In android/app/build.gradle:
 Under android {, make sure compileSdkVersion and targetSdkVersion are at least 28



5.Replace all deprecated libraries with the AndroidX equivalents. For instance, if you’re using the default .gradle files make the following changes:
In android/app/build.gradle

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
by
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
Finally, under dependencies {, replace

androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
by

androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'

这是我的一些build.grade文件,在其中设置了SDK版本:

enter code here compileSdkVersion 28

lintOptions {
    disable 'InvalidPackage'
}

defaultConfig {
    // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
    applicationId "co.appbrewery.clima"
    minSdkVersion 28
    targetSdkVersion 28
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

尝试了以上所有操作,但仍然出现错误,每当我尝试将其设置为使用Android Studio功能迁移到Android X时,将SDK版本更改为至少28。

2 个答案:

答案 0 :(得分:0)

我建议您使用android studio功能将项目迁移到android X,而不是手动进行。

来源:Migrate the project to android X using android studio

  

使用Android Studio中3.2和更高的,可以迅速迁移现有项目通过从菜单栏中选择重构>迁移到AndroidX使用AndroidX。

答案 1 :(得分:0)

用android studio来做。

在工作室中打开项目,并将minSdk版本更改为23。您还需要更新gradle版本并将其升级到3.6.0以上。而不是去验光师。在那里,您可以选择迁移到Android x并进行折射。它将要求您进行备份。然后,在底部,您将弹出“ Do Refractor”的弹出窗口。就是这样。