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

时间:2019-06-07 13:01:52

标签: android gradle flutter dart androidx

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

  
    

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

  

-> this post <-之后,我向build.gradle添加了一些代码

allprojects {

configurations.all {
    resolutionStrategy.force"androidx.vectordrawable:vectordrawable:1.0.0",
}
repositories {
    google()
    jcenter()
}

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

  
    

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”。

有什么建议吗?

预先感谢

[edit]我也尝试过这个老把戏,但是没有用 (还会根据需要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"
            }
        }
    }
}

现在返回另一个错误

  
    

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

  

3 个答案:

答案 0 :(得分:1)

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

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

myTableView.isUserInteractionEnabled = false

作者

myGestureRecognizer.cancelsTouchesInView = true

3。在android / gradle.properties中,添加

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

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

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

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

在android / app / build.gradle

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

作者

android.enableJetifier=true
android.useAndroidX=true

最后,在依赖项下替换

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

作者

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

答案 1 :(得分:1)

您需要在最新版本的...中使用此信息:)

1)android/gradle/wrapper/gradle-wrapper.properties

用最新的gradle替换以distributionUrl开头的行:

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

2)

  

android / build.gradle

您需要替换:

> dependencies {
>     classpath 'com.android.tools.build:**gradle:x.x.x**' }

  

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

3)在android / gradle.properties中粘贴

  

android.enableJetifier=true android.useAndroidX=true

4):在android / app / build.gradle中:确保 compileSdkVersion targetSdkVersion 至少为28英寸

最重要的是: 在android / app / build.gradle中:替换

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

与`

> testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

`

替换

> androidTestImplementation 'com.android.support.test:runner:x.x.x'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:x.x.x'

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

答案 2 :(得分:0)

始终确保新添加的依赖项与gradle的版本匹配, 您可能需要升级或降级依赖项以匹配您的gradle版本,但最重要的是,建议使用最新的gradle版本并将其与最新的插件依赖项进行匹配,以避免这些错误。