Flutter和AndroidX不兼容如何手动设置依赖项

Fra*_*cca 1 android gradle dart flutter androidx

由于AndroidX不兼容,在编译时出现错误:

Android依赖项“ androidx.vectordrawable:vectordrawable”对于编译(1.0.0)和运行时(1.0.1)类路径具有不同的版本。您应该通过DependencyResolution手动设置相同的版本

以下->这篇帖子<-我向build.gradle添加了一些代码

allprojects {

configurations.all {
    resolutionStrategy.force"androidx.vectordrawable:vectordrawable:1.0.0",
}
repositories {
    google()
    jcenter()
}
Run Code Online (Sandbox Code Playgroud)

下次跑步给了我另一个错误

Android依赖项“ androidx.core:core”对于编译(1.0.0)和运行时(1.0.1)类路径具有不同的版本。您应该通过DependencyResolution手动设置相同的版本

我试图添加这个

“ androidx.vectordrawable:vectordrawable:1.0.0”,“ androidx.core:core:1.0.0”,

但我可能做错了,因为我得到了经典的“意外的bla bla bla”

有什么建议吗?

提前致谢

[编辑]我试过这个老把戏一样好,但没有工作(也降级包所需HERE

rootProject.allprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'androidx.core') {
                details.useVersion "1.0.1"
            }
            if (details.requested.group == 'androidx.lifecycle') {
                details.useVersion "2.0.0"
            }
            if (details.requested.group == 'androidx.versionedparcelable') {
                details.useVersion "1.0.0"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在返回另一个错误

Android依赖项“ androidx.appcompat:appcompat”对于编译(1.0.0)和运行时(1.0.2)类路径具有不同的版本。您应该通过DependencyResolution手动设置相同的版本

小智 6

  1. 在android / gradle / wrapper / gradle-wrapper.properties中,更改以distributionUrl开头的行,如下所示:distributionUrl = https://services.gradle.org/distributions/gradle-4.10.2-all.zip

2.在android / build.gradle中,替换为:

dependencies {
    classpath 'com.android.tools.build:gradle:3.2.1'
}
Run Code Online (Sandbox Code Playgroud)

通过

dependencies {
  classpath 'com.android.tools.build:gradle:3.3.0'
}
Run Code Online (Sandbox Code Playgroud)

3,在android / gradle.properties中,追加

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

4.在android / app / build.gradle中:

在android {下,确保compileSdkVersion和targetSdkVersion至少为28。

5,将所有弃用的库替换为AndroidX等效项。例如,如果您使用默认的.gradle文件,请进行以下更改:

在android / app / build.gradle中

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
Run Code Online (Sandbox Code Playgroud)

通过

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
Run Code Online (Sandbox Code Playgroud)

最后,在依赖项下替换

androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
Run Code Online (Sandbox Code Playgroud)

通过

androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
Run Code Online (Sandbox Code Playgroud)