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

创建于 2019-01-29  ·  92评论  ·  资料来源: flutter/flutter

我知道这个问题意味着什么,但我不知道如何想出一个确切的解决方案。 我提供了代码,它修复了我在 android 支持库中遇到的类似问题。

subprojects {
        project.configurations.all {
            resolutionStrategy.eachDependency { details ->
                if (details.requested.group == 'com.android.support'
                        && !details.requested.name.contains('multidex') ) {
                    details.useVersion "27.1.1"
                }
            }
        }
    }

这是有关该问题的更多信息

Launching lib\main.dart on TA 1024 in debug mode...
Initializing gradle...
Resolving dependencies...
Running Gradle task 'assembleDebug'...
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:preDebugBuild'.
> Android dependency 'androidx.core:core' has different version for the compile (1.0.0) and runtime (1.0.1) classpath. You should manually set the same version via DependencyResolution

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 6s
Finished with error: Gradle task assembleDebug failed with exit code 1
first party tooling plugin gradle tool

最有用的评论

在所有建议之后仍然不起作用

不是开玩笑,我最近遇到了同样的问题(我收到了很多关于 AndroidX 的各种依赖项的抱怨,以-rc01版本结尾),并且强制解析策略的各种解决方案都不起作用。

我通过升级android/build.gradle文件中的 gradle 依赖项解决了这个问题: classpath 'com.android.tools.build:gradle:3.3.1' (我之前使用的是3.2.1

所有92条评论

好的,所以我设法通过添加这样的代码片段来修复错误

subprojects {
        project.configurations.all {
            resolutionStrategy.eachDependency { details ->
                if (details.requested.group == 'com.android.support'
                        && !details.requested.name.contains('multidex') ) {
                    details.useVersion "27.1.1"
                }
                if (details.requested.group == 'androidx.core'
                        && !details.requested.name.contains('androidx') ) {
                    details.useVersion "1.0.1"
                }
            }
        }
    }

将其粘贴到build.gradle下的构建脚本中。

``` gradle
构建脚本{
ext.kotlin_version = '1.2.51'
存储库{
谷歌()
jcenter()
}

dependencies {
    classpath 'com.android.tools.build:gradle:3.2.1'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath 'com.google.gms:google-services:4.2.0'
}

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "27.1.1"
            }

            if (details.requested.group == 'androidx.core'
                    && !details.requested.name.contains('androidx') ) {
                details.useVersion "1.0.1"
            }
        }
    }
}

}

所有项目{
存储库{
谷歌()
jcenter()
}
}

rootProject.buildDir = '../build'
子项目{
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
子项目{
project.evaluationDependsOn(':app')
}

任务清理(类型:删除){
删除 rootProject.buildDir
}
``

抄送@amirh @mklim

在我的应用程序上将compileSdkVersion从 27 升级到 28 后,出现此错误。

我将以下黑魔法粘贴到.../android/build.gradle (不是.../android/app/build.grade )中,这使问题消失了:

subprojects {
    project.configurations.all {
    resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'androidx.core' &&
           !details.requested.name.contains('androidx')) {
        details.useVersion "1.0.1"
            }
    }
    }    
}

到目前为止,我无法重现此内容。 如果有人有触发此错误的可共享代码,这对调试非常有帮助。

@Atominac在 #27679 中发现了一个可重现的案例。

重现步骤

  flutter_local_notifications:
  firebase_core:
  firebase_messaging:

我使用了 Hixie 的功能。问题消失了

在所有建议之后仍然不起作用

在所有建议之后仍然不起作用

不是开玩笑,我最近遇到了同样的问题(我收到了很多关于 AndroidX 的各种依赖项的抱怨,以-rc01版本结尾),并且强制解析策略的各种解决方案都不起作用。

我通过升级android/build.gradle文件中的 gradle 依赖项解决了这个问题: classpath 'com.android.tools.build:gradle:3.3.1' (我之前使用的是3.2.1

@david-mccoy 谢谢! 它对我有用!

感谢为我工作

2019 年 3 月 4 日星期一上午 9:34 Prakhar Varshney通知@github.com
写道:

@david-mccoy https://github.com/david-mccoy谢谢! 它对我有用!


您收到此消息是因为您发表了评论。
直接回复本邮件,在GitHub上查看
https://github.com/flutter/flutter/issues/27254#issuecomment-469163125
或静音线程
https://github.com/notifications/unsubscribe-auth/AX2WfqRQkKG5VGc-8xt1c1vIQhwBzHBKks5vTNqOgaJpZM4aYzDb
.

@david-mccoy 很棒的解决方案对我有用! 谢谢!

@david-mccoy 很好的答案。 烦人的 androidX 问题最近一直困扰着我,这对我有用

这对我也有用

在所有建议之后仍然不起作用

不是开玩笑,我最近遇到了同样的问题(我收到了很多关于 AndroidX 的各种依赖项的抱怨,以-rc01版本结尾),并且强制解析策略的各种解决方案都不起作用。

我通过升级android/build.gradle文件中的 gradle 依赖项解决了这个问题: classpath 'com.android.tools.build:gradle:3.3.1' (我之前使用的是3.2.1

在将 Kotlin 版本(我的项目支持 Kotlin)更改为 1.3.0(我有 1.2.71)后为我工作

如果gradle从3.2.1升级到3.3.1,发现androidmanifest.xml中的android:label修改后不生效,meta-data不生效的问题。 @大卫麦考伊。 你有没有发现这个问题?

如果gradle从3.2.1升级到3.3.1,发现androidmanifest.xml中的android:label修改后不生效,meta-data不生效的问题。 @大卫麦考伊。 你有没有发现这个问题?

抱歉,我没有处理过这个问题

在所有建议之后仍然不起作用

不是开玩笑,我最近遇到了同样的问题(我收到了很多关于 AndroidX 的各种依赖项的抱怨,以-rc01版本结尾),并且强制解析策略的各种解决方案都不起作用。

我通过升级android/build.gradle文件中的 gradle 依赖项解决了这个问题: classpath 'com.android.tools.build:gradle:3.3.1' (我之前使用的是3.2.1

为我工作。 谢谢。

com.android.tools.build:gradle撞到3.3.2为我解决了这个问题。

由于这是由flutter create生成的文件,是否有责任使其保持最新,还是作为开发人员的我? 🤔

如果您的 flutter 应用程序支持 kotlin,要解决此问题,您需要更改 android/build.gradle 中的 2 个值:

  1. 将 kotlin_version 从 1.2.71 更改为 1.3.0

  2. 将 gradle 版本从 3.2.1 更改为 3.3.2

截至 2019 年 3 月 28 日。

发生在我身上,改变 kotlin 和 gradle 都有效

在所有建议之后仍然不起作用

不是开玩笑,我最近遇到了同样的问题(我收到了很多关于 AndroidX 的各种依赖项的抱怨,以-rc01版本结尾),并且强制解析策略的各种解决方案都不起作用。

我通过升级android/build.gradle文件中的 gradle 依赖项解决了这个问题: classpath 'com.android.tools.build:gradle:3.3.1' (我之前使用的是3.2.1

谢谢!!!

我已经搜索了很多关于这个,最后这对我有帮助,
尝试这个:

1.转到gradle文件夹下的build.gradle并将类路径依赖项更改为

buildscript {
     repositories {
          google()
           jcenter()
 }

 dependencies {
    classpath 'com.android.tools.build:gradle:**3.4.1**'
  }
}
  1. 转到 android->gradle->wrapper->gradle-wrapper.properties 并将分发 URL 更改为

    distributionUrl = HTTPS \://services.gradle.org/distributions/ gradle-5.1.1-all.zip

在所有建议之后仍然不起作用

不是开玩笑,我最近遇到了同样的问题(我收到了很多关于 AndroidX 的各种依赖项的抱怨,以-rc01版本结尾),并且强制解析策略的各种解决方案都不起作用。

我通过升级android/build.gradle文件中的 gradle 依赖项解决了这个问题: classpath 'com.android.tools.build:gradle:3.3.1' (我之前使用的是3.2.1

@david-mccoy 谢谢,终于成功了

在所有建议之后仍然不起作用

不是开玩笑,我最近遇到了同样的问题(我收到了很多关于 AndroidX 的各种依赖项的抱怨,以-rc01版本结尾),并且强制解析策略的各种解决方案都不起作用。

我通过升级android/build.gradle文件中的 gradle 依赖项解决了这个问题: classpath 'com.android.tools.build:gradle:3.3.1' (我之前使用的是3.2.1

谢了哥们。 有用。

好的,所以我设法通过添加这样的代码片段来修复错误

subprojects {
        project.configurations.all {
            resolutionStrategy.eachDependency { details ->
                if (details.requested.group == 'com.android.support'
                        && !details.requested.name.contains('multidex') ) {
                    details.useVersion "27.1.1"
                }
                if (details.requested.group == 'androidx.core'
                        && !details.requested.name.contains('androidx') ) {
                    details.useVersion "1.0.1"
                }
            }
        }
    }

将其粘贴到build.gradle下的构建脚本中。

buildscript {
    ext.kotlin_version = '1.2.51'
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.2.0'
    }

    subprojects {
        project.configurations.all {
            resolutionStrategy.eachDependency { details ->
                if (details.requested.group == 'com.android.support'
                        && !details.requested.name.contains('multidex') ) {
                    details.useVersion "27.1.1"
                }

                if (details.requested.group == 'androidx.core'
                        && !details.requested.name.contains('androidx') ) {
                    details.useVersion "1.0.1"
                }
            }
        }
    }

}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

拯救了我的一天,谢谢:)

在所有建议之后仍然不起作用

不是开玩笑,我最近遇到了同样的问题(我收到了很多关于 AndroidX 的各种依赖项的抱怨,以-rc01版本结尾),并且强制解析策略的各种解决方案都不起作用。

我通过升级android/build.gradle文件中的 gradle 依赖项解决了这个问题: classpath 'com.android.tools.build:gradle:3.3.1' (我之前使用的是3.2.1

知道了。 谢谢!

如果您的 flutter 应用程序支持 kotlin,要解决此问题,您需要更改 android/build.gradle 中的 2 个值:

  1. 将 kotlin_version 从 1.2.71 更改为 1.3.0
  2. 将 gradle 版本从 3.2.1 更改为 3.3.2

截至 2019 年 3 月 28 日。

谢谢 ! 这个对我有用

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

[√] Flutter (Channel stable, v1.7.8+hotfix.4, on Microsoft Windows [Version 10.0.17763.678], locale tr-TR)
[√] Android 工具链 - 为 Android 设备开发(Android SDK 版本 29.0.1)
[√] Android Studio(3.4版本)
[√] VS Code(1.37.1 版本)
[√] 已连接设备(1 个可用)

我已经搜索了很多关于这个,最后这对我有帮助,
尝试这个:

1.转到gradle文件夹下的build.gradle并将类路径依赖项更改为

buildscript {
     repositories {
          google()
           jcenter()
 }

 dependencies {
    classpath 'com.android.tools.build:gradle:**3.4.1**'
  }
}
  1. 转到 android->gradle->wrapper->gradle-wrapper.properties 并将分发 URL 更改为
    distributionUrl=https\://services.gradle.org/distributions/**gradle-5.1.1-all.zip**
#

将 Android Gradle Plugin 和 Gradle 升级到最新版本可以解决这个问题。 对于 Android Studio 3.5,修改这些:
android/build.gradle

com.android.tools.build:gradle:3.5.0

android/gradle/wrapper/gradle-wrapper.properties

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

当然,您应该通过 DependencyResolution 手动设置相同的版本。 所以,下面的解析策略也可以用来解决依赖冲突:
android/gradle.properties:

androidxCoreVersion=1.0.0
androidxLifecycleVersion=2.0.0
````
android/build.gradle: 
```groovy
subprojects {
    project.configurations.all {
        resolutionStrategy {
            force "androidx.core:core:${androidxCoreVersion}"
            force "androidx.lifecycle:lifecycle-common:${androidxLifecycleVersion}"
        }
    }
}

感谢@Lebogang95 ,之前的错误得到了解决,但我面临着一个带有 androidx.swiperefreshlayout 和 androidx.localbroadca stmanager:localbroadcastmanager的新错误,并且每次都会出现新错误。
错误之一是:
Android 依赖项“androidx.dra werlayout:drawerlayout ”对于编译 (1.0.0-rc01) 和运行时 (1.0.0) 类路径具有不同的版本。 您应该通过 DependencyResolution 手动设置相同的版本

有什么想法吗?

更新 Gradle 解决了我。

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

classpath 'com.android.tools.build:gradle:3.5.0'

如果您的 flutter 应用程序支持 kotlin,要解决此问题,您需要更改 android/build.gradle 中的 2 个值:

  1. 将 kotlin_version 从 1.2.71 更改为 1.3.0
  2. 将 gradle 版本从 3.2.1 更改为 3.3.2

截至 2019 年 3 月 28 日。

多谢 ! 你刚刚拯救了我的一天

在所有建议之后仍然不起作用

不是开玩笑,我最近遇到了同样的问题(我收到了很多关于 AndroidX 的各种依赖项的抱怨,以-rc01版本结尾),并且强制解析策略的各种解决方案都不起作用。
我通过升级android/build.gradle文件中的 gradle 依赖项解决了这个问题: classpath 'com.android.tools.build:gradle:3.3.1' (我之前使用的是3.2.1

在将 Kotlin 版本(我的项目支持 Kotlin)更改为 1.3.0(我有 1.2.71)后为我工作

也为我工作。 谢谢你。

如果您的 flutter 应用程序支持 kotlin,要解决此问题,您需要更改 android/build.gradle 中的 2 个值:

  1. 将 kotlin_version 从 1.2.71 更改为 1.3.0
  2. 将 gradle 版本从 3.2.1 更改为 3.3.2

截至 2019 年 3 月 28 日。

有用。 谢谢。

如果您的 flutter 应用程序支持 kotlin,要解决此问题,您需要更改 android/build.gradle 中的 2 个值:

  1. 将 kotlin_version 从 1.2.71 更改为 1.3.0
  2. 将 gradle 版本从 3.2.1 更改为 3.3.2

截至 2019 年 3 月 28 日。

有用。 谢谢。

+1

我将以下黑魔法粘贴到.../android/build.gradle (不是.../android/app/build.grade )中,这使问题消失了:

subprojects {
    project.configurations.all {
  resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'androidx.core' &&
         !details.requested.name.contains('androidx')) {
      details.useVersion "1.0.1"
            }
  }
    }    
}

谢谢这个!!! 花了几个小时试图弄清楚事情。

我更新了项目,迁移到androidx,并升级了gradle,我认为会更好。

在所有建议之后仍然不起作用

不是开玩笑,我最近遇到了同样的问题(我收到了很多关于 AndroidX 的各种依赖项的抱怨,以-rc01版本结尾),并且强制解析策略的各种解决方案都不起作用。
我通过升级android/build.gradle文件中的 gradle 依赖项解决了这个问题: classpath 'com.android.tools.build:gradle:3.3.1' (我之前使用的是3.2.1

在将 Kotlin 版本(我的项目支持 Kotlin)更改为 1.3.0(我有 1.2.71)后为我工作

谢谢它对我有用

在所有建议之后仍然不起作用

不是开玩笑,我最近遇到了同样的问题(我收到了很多关于 AndroidX 的各种依赖项的抱怨,以-rc01版本结尾),并且强制解析策略的各种解决方案都不起作用。

我通过升级android/build.gradle文件中的 gradle 依赖项解决了这个问题: classpath 'com.android.tools.build:gradle:3.3.1' (我之前使用的是3.2.1

我浪费了 2 天时间试图找到解决方案,只有您的建议才救了我! 非常感谢,祝你快乐:)

没问题兄弟:)

2019 年 10 月 1 日星期二晚上 11:30,Konstantin [email protected]写道:

在所有建议之后仍然不起作用

不是开玩笑,我最近遇到了同样的问题(而且我遇到了很多
关于 AndroidX 的各种依赖项的投诉,带有 -rc01
版本结尾),以及强制解析策略的各种解决方案
没有工作。

我通过升级 android/build.gradle 中的 gradle 依赖项解决了这个问题
文件:类路径 'com.android.tools. build:gradle :3.3.1'(我以前是
在版本 3.2.1)

我浪费了 2 天的时间试图找到解决方案,但只保存了您的建议
我! 非常感谢,祝你快乐:)


您收到此消息是因为您发表了评论。
直接回复本邮件,在GitHub上查看
https://github.com/flutter/flutter/issues/27254?email_source=notifications&email_token=AM36K6XWUVIUJZBKV2YNN23QMQ5XHA5CNFSM4GTDGDN2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LODNVX5000000000000000000000000000000010;email_token=AM36K6XWUVIUJZBKV2YNN23
或静音线程
https://github.com/notifications/unsubscribe-auth/AM36K6RLHCLRE64Q3OKFO53QMQ5XHANCNFSM4GTDGDNQ
.

好的,所以我设法通过添加这样的代码片段来修复错误

subprojects {
        project.configurations.all {
            resolutionStrategy.eachDependency { details ->
                if (details.requested.group == 'com.android.support'
                        && !details.requested.name.contains('multidex') ) {
                    details.useVersion "27.1.1"
                }
                if (details.requested.group == 'androidx.core'
                        && !details.requested.name.contains('androidx') ) {
                    details.useVersion "1.0.1"
                }
            }
        }
    }

将其粘贴到build.gradle下的构建脚本中。

buildscript {
    ext.kotlin_version = '1.2.51'
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.2.0'
    }

    subprojects {
        project.configurations.all {
            resolutionStrategy.eachDependency { details ->
                if (details.requested.group == 'com.android.support'
                        && !details.requested.name.contains('multidex') ) {
                    details.useVersion "27.1.1"
                }

                if (details.requested.group == 'androidx.core'
                        && !details.requested.name.contains('androidx') ) {
                    details.useVersion "1.0.1"
                }
            }
        }
    }

}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

谢谢,哥们,你解决了我的大问题...

在所有建议之后仍然不起作用

不是开玩笑,我最近遇到了同样的问题(我收到了很多关于 AndroidX 的各种依赖项的抱怨,以-rc01版本结尾),并且强制解析策略的各种解决方案都不起作用。
我通过升级android/build.gradle文件中的 gradle 依赖项解决了这个问题: classpath 'com.android.tools.build:gradle:3.3.1' (我之前使用的是3.2.1

在将 Kotlin 版本(我的项目支持 Kotlin)更改为 1.3.0(我有 1.2.71)后为我工作

Kotlin 版本是 V imp 才能工作。 将其更改为ext.kotlin_version = '1.3.0'

这应该尽快解决。 昨天刚刚创建了一个新的 Flutter 项目,我不得不从 1 年前的今天开始解决这个问题:
将 Kotlin 更改为:
ext.kotlin_version = '1.3.0'
和 Gradle 到:
classpath 'com.android.tools.build:gradle:3.3.1'

如果这是谷歌试图出售的支持,我没有看到。 对于想要获得牵引力的框架来说是不可接受的......

如果您的 flutter 应用程序支持 kotlin,要解决此问题,您需要更改 android/build.gradle 中的 2 个值:

  1. 将 kotlin_version 从 1.2.71 更改为 1.3.0
  2. 将 gradle 版本从 3.2.1 更改为 3.3.2

截至 2019 年 3 月 28 日。

是的,这工作得很好! 谢谢

像九头蛇,解决一和成长二。

在所有建议之后仍然不起作用

不是开玩笑,我最近遇到了同样的问题(我收到了很多关于 AndroidX 的各种依赖项的抱怨,以-rc01版本结尾),并且强制解析策略的各种解决方案都不起作用。

我通过升级android/build.gradle文件中的 gradle 依赖项解决了这个问题: classpath 'com.android.tools.build:gradle:3.3.1' (我之前使用的是3.2.1

我刚刚迁移到 AndroidX 并且正在实施 firebase_core 和 firebase_messaging 的过程中,当我遇到此错误时。 正如@david-mccoy 提到的那样迁移到 Gradle 3.3.1 为我解决了这个问题。 谢谢!

这非常糟糕,非常烦人,每次我使用 Flutter 开始一个新项目时,我都必须为编译项目编辑 android 文件夹中的几个文件,例如“gradle.properties”添加行

android.useAndroidX = 真
android.enableJetifier = 真

编辑文件“android/build.gradle”

将 Gradle 设置为 3.3.1 而不是 3.2.1
添加依赖 com.google.gms: google-services: 4.3.2
将 kotlin 版本设置为 1.3.0 ext.kotlin_version = '1.3.0'

编辑 android/app/build.gradle

添加 Firebase SDK
实现 'com.google.firebase: firebase-analytics: 17.2.0'

将 SDK 添加到任何其他 Firebase 产品
https://firebase.google.com/docs/android/setup#available -libraries

在文件末尾添加
应用插件:'com.google.gms.google-services'

添加依赖
实现 'com.android. 支持:multidex :1.0.3'

这一切都非常糟糕,似乎 Flutter 是一个更聪明和不专业的东西。

无需手动更改依赖项版本。 只需使用 Android Studio 和Refactor -> Migrate to AndroidX...打开项目,一切都会按预期进行。
参考: https :

@theshyelf
理想情况下,如果您不必执行任何这些操作。
理想情况下,从我将包添加到 pubspec 的那一刻起,这将自动完成。 类似于 Visual Studio 中的 Nuget Xamarin 包

如果您的 flutter 应用程序支持 kotlin,要解决此问题,您需要更改 android/build.gradle 中的 2 个值:

1. change kotlin_version from 1.2.71 to 1.3.0

2. change gradle version from 3.2.1 to 3.3.2

截至 2019 年 3 月 28 日。

在此之后,我不得不执行flutter pub cache repair以使其再次构建

@insinfo对于新项目,您可以使用以下命令启用 AndroidX: flutter create --androidx -t <project-type> <new-project-path>

如果您的 flutter 应用程序支持 kotlin,要解决此问题,您需要更改 android/build.gradle 中的 2 个值:

1. change kotlin_version from 1.2.71 to 1.3.0

2. change gradle version from 3.2.1 to 3.3.2

截至 2019 年 3 月 28 日。

谢谢兄弟,解决了我的问题。

如果您的 flutter 应用程序支持 kotlin,要解决此问题,您需要更改 android/build.gradle 中的 2 个值:

  1. 将 kotlin_version 从 1.2.71 更改为 1.3.0
  2. 将 gradle 版本从 3.2.1 更改为 3.3.2

截至 2019 年 3 月 28 日。

谢谢你。 这个解决了我今天的问题。

My solution is as follows:

  1. Change to 3.3.1 in build.grade in the project root directory, and then delete ext.kotlin_version = '1.3.31'
  2. Add it again under grade. Properties,
    Android. UseAndroidX = true
    Android. EnableJetifier = true,
    Save the first line org.gradle.jvmargs= -xmx1536m
    Delete the rest.
  3. The last sync

我的解决方案如下:
1.先在项目根目录下的build.grade中,改为3.3.1.然后删除ext.kotlin_version = '1.3.31'
2.再在grade.properties下添加,
android.useAndroidX = true
android.enableJetifier = true,
保留第一行 org.gradle.jvmargs=-Xmx1536M
其余删除.
3.最后 sync
image
image

我不想迁移到 androidx,因为它不支持较低版本的 android 怎么办?

到目前为止,我无法重现此内容。 如果有人有触发此错误的可共享代码,这对调试非常有帮助。

易于复制:

  1. 创建一个新的 Flutter 项目 AndroidStudio
  2. 将 cloud_firestore: ^0.11.0+1 添加到 pubspec.yaml
    观察编译错误
    任务“: app:preDebugBuild ”执行失败。

Android 依赖项 'android.arch. Lifecycle:runtime ' 对于编译 (1.0.0) 和运行时 (1.1.1) 类路径具有不同的版本。 您应该通过 DependencyResolution 手动设置相同的版本

  • 尝试:
    使用 --stacktrace 选项运行以获取堆栈跟踪。 使用 --info 或 --debug 选项运行以获得更多日志输出。 使用 --scan 运行以获得完整的见解。
  • 评论 #cloud_firestore:^0.11.0+1
  • 执行run,观察apk生成成功。
    构建 build/app/outputs/apk/debug/app-debug.apk。
    安装 build/app/outputs/apk/app.apk...
    正在将文件同步到设备 Redmi Note 6 Pro...
    I/zygote64(17121):做部分代码缓存收集,代码=30KB,数据=21KB
    I/zygote64(17121):代码缓存收集后,代码=30KB,数据=21KB
    I/zygote64(17121):增加代码缓存容量到128KB
    希望这可以帮助!
    感谢您帮助解决此错误!
    问候, 纳维娜

代码文件示例:
导入'包:颤振/材料.dart ';

void main() => runApp(MyApp());

class MyApp 扩展 StatelessWidget {
// 这个小部件是你的应用程序的根。
@覆盖
小部件构建(BuildContext 上下文){
返回 MaterialApp(
title: 'Flutter 演示',
主题:主题数据(
// 这是您的应用程序的主题。
//
// 尝试使用“flutter run”运行您的应用程序。 你会看到
// 应用程序有一个蓝色的工具栏。 然后,在不退出应用程序的情况下,尝试
// 将下面的 primarySwatch 更改为 Colors.green 然后调用
//“热重载”(在运行“flutter run”的控制台中按“r”,
// 或简单地将更改保存到 Flutter IDE 中的“热重载”)。
// 注意计数器没有重置为零; 应用程序
// 没有重新启动。
主色板:Colors.orange,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}

class MyHomePage 扩展了 StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);

// 此小部件是您的应用程序的主页。 它是有状态的,意思是
// 它有一个 State 对象(定义如下),其中包含影响
// 它看起来如何。

// 这个类是状态的配置。 它保存值(在这个
// 由父级(在本例中为 App 小部件)提供的标题)和
// 由 State 的 build 方法使用。 Widget 子类中的字段是
// 始终标记为“最终”。

最终字符串标题;

@覆盖
_MyHomePageState createState() => _MyHomePageState();
}

类 _MyHomePageState 扩展状态{
int_counter = 0;

void _incrementCounter() {
设置状态((){
// 这个对 setState 的调用告诉 Flutter 框架某些东西已经
// 在此状态下发生更改,导致它重新运行下面的构建方法
// 以便显示可以反映更新的值。 如果我们改变
// _counter 不调用setState(),那么build方法就不会
// 再次调用,所以似乎什么都没有发生。
_计数器++;
});
}

@覆盖
小部件构建(BuildContext 上下文){
// 每次调用 setState 时都会重新运行此方法,例如已完成
// 通过上面的 _incrementCounter 方法。
//
// Flutter 框架已经过优化,可以重新运行构建方法
// 快,这样你就可以重建任何需要更新的东西
// 而不是必须单独更改小部件的实例。
返回脚手架(
应用栏:应用栏(
// 这里我们从创建的 MyHomePage 对象中获取值
// App.build 方法,并使用它来设置我们的应用栏标题。
标题:文本(小部件。标题),
),
身体:中心(
// 中心是一个布局小部件。 它需要一个孩子并将其定位
// 在父级的中间。
孩子:列(
// Column 也是一个布局小部件。 它需要一个孩子的名单和
// 垂直排列它们。 默认情况下,它会调整自己的大小以适合其
// 水平的孩子,并试图和它的父母一样高。
//
// 调用“调试绘画”(在控制台中按“p”,选择
// 来自 Android 中 Flutter Inspector 的“Toggle Debug Paint”操作
// Studio,或 Visual Studio Code 中的“Toggle Debug Paint”命令)
// 查看每个小部件的线框。
//
// Column 有各种属性来控制它自身的大小和
// 它如何定位它的孩子。 这里我们使用 mainAxisAlignment 来
// 垂直居中孩子; 这里的主轴是垂直的
// 轴,因为列是垂直的(横轴是
// 水平的)。
mainAxisAlignment: MainAxisAlignment.center,
孩子们:[
文本(
'你按了这么多次按钮:',
),
文本(
'$_counter',
样式:Theme.of(context).textTheme.display1,
),
],
),
),
浮动动作按钮:浮动动作按钮(
onPressed: _incrementCounter,
工具提示:'增量',
孩子:图标(Icons.add),
), // 这个尾随逗号使构建方法的自动格式化更好。
);
}
}

非常感谢。 为我工作

无需手动更改依赖项版本。 只需使用 Android Studio 和Refactor -> Migrate to AndroidX...打开项目,一切都会按预期进行。
参考: https :

它只会告诉你在当前项目中没有使用 AndroidX。 就是这样,您必须进行手动更改。

我的解决方案如下:

  1. 将 kotlin_version 从 1.2.71 更改为 1.3.0
  2. 将 gradle 版本从 3.2.1 更改为 3.3.1

必须有一个 flutter 命令来自动检查和修复项目。

我已经进行了更新,但仍然出现相同的错误:
image

该错误表明 Kotlin 版本未更新。

image
使用image_picker: ^0.6.2+3时会发生这种情况。 使用cloud_firestore:^0.13.0+1

@bdairy相同,只是添加了 _image_picker_ ,我遇到了问题:
cloud_firestore:^0.13.0+1
firebase_storage:^3.1.1
图像选择器:^0.6.3

解决了:

buildscript {
    ext.kotlin_version = '1.3.0'
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.2'
    }
}

问题是该项目可能使用旧版本的 Gradle、Android Gradle 插件和 Kotlin。

如果您仍然看到此问题,请确保:

  1. <app-dir>/android/build.gradle包含此部分:

```.groovy
构建脚本{
ext.kotlin_version = '1.3.50'
存储库{
谷歌()
jcenter()
}

dependencies {
    classpath 'com.android.tools.build:gradle:3.5.0'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}

}

2. `<app-dir>/android/gradle/wrapper/gradle-wrapper.properties` contains this code:
```.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
  1. 确保应用迁移到 AndroidX:
    .properties org.gradle.jvmargs=-Xmx1536M android.enableR8=true android.useAndroidX=true android.enableJetifier=true

cc @zanderso这是文件不同步的另一个实例。 我们在 devicelab 中没有看到这些问题,因为我们只针对这些依赖项的单个组合进行测试。

@blasten感谢您的回复,但实际上所有这些设置都完全相同,但我仍然遇到相同的错误。 我什至运行 flutter clean .. 检查屏幕截图和 flutter doctor。 这停止了​​我的工作,我真的很感激你们的帮助……谢谢
image

image
image
image
image

@bdairy相同,只是添加了 _image_picker_ ,我遇到了问题:
cloud_firestore:^0.13.0+1
firebase_storage:^3.1.1
图像选择器:^0.6.3

解决了:

buildscript {
    ext.kotlin_version = '1.3.0'
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.2'
    }
}

感谢@JuanjoA,但仍然遇到相同的错误。 我想我需要配置一些东西,我真的很迷茫。

@blasten是否有任何修复即将推出。我现在在 iOS 中工作,但我的提交非常接近。 谢谢

@blasten是否有任何修复即将推出。我现在在 iOS 中工作,但我的提交非常接近。 谢谢

我可以帮助您修复 android,但 ios 我不确定。

@blasten是否有任何修复即将推出。我现在在 iOS 中工作,但我的提交非常接近。 谢谢

我可以帮助您修复 android,但 ios 我不确定。

@sethladd我在 iOS 上没有问题,问题只是 android 问题,请帮忙:)

@blasten是否有任何修复即将推出。我现在在 iOS 中工作,但我的提交非常接近。 谢谢

我可以帮助您修复 android,但 ios 我不确定。

@sethladd我在 iOS 上没有问题,问题只是 android 问题,请帮忙:)

设置火力基地:

在 app.gradle 中使用如下代码所示的 gms 服务版本,而不是 4.3.2 或任何其他版本:

classpath 'com.google.gms:google-services:4.2.0'

将此代码段添加到依赖项下面的 build.gradle 中:

subprojects {
        project.configurations.all {
            resolutionStrategy.eachDependency { details ->
                if (details.requested.group == 'com.android.support'
                        && !details.requested.name.contains('multidex') ) {
                    details.useVersion "27.1.1"
                }
                if (details.requested.group == 'androidx.core'
                        && !details.requested.name.contains('androidx') ) {
                    details.useVersion "1.0.1"
                }
            }
        }
    }

更改 build.gradle 中的依赖项(在 app->build.gradle 之外)
类路径 'com.android.tools. 构建:gradle :3.3.1'
请注意,最初它是 3.2.1 或者也可以是其他版本。

将 kotlin 版本从 1.2.71 或其他版本更改为 1.3.0

转到 gradle.properties 并粘贴以下代码片段:

android.useAndroidX = true
android.enableJetifier = true

如果您在查找任何文件夹时遇到问题,请告诉我

如果您在查找任何文件夹时遇到问题,请告诉我

谢谢@sedhha,但没有任何效果..
image

得到同样的错误。 难道我做错了什么??

如果您在查找任何文件夹时遇到问题,请告诉我

谢谢@sedhha,但没有任何效果..
image

得到同样的错误。 难道我做错了什么??

你能告诉我确切的错误吗?

如果您在查找任何文件夹时遇到问题,请告诉我

谢谢@sedhha,但没有任何效果..
image
得到同样的错误。 难道我做错了什么??

你能告诉我确切的错误吗?

这是我发表的上一条评论中的那个..

如果您在查找任何文件夹时遇到问题,请告诉我

谢谢@sedhha,但没有任何效果..
image
得到同样的错误。 难道我做错了什么??

你能告诉我确切的错误吗?

这是我发表的上一条评论中的那个..

@bdairy

我遇到了同样的问题。
请确保以下事项。 我仍然在您更新的版本声明中看到:

classpath 'com.android.tools.build:gradle:3.5.0'
which should be 3.3.1

Also have you set minimum sdk version to 21?
Further I hope you have added this set of lines in gradle.properties:

android.useAndroidX = 真
android.enableJetifier = 真
``
此外,您已将 kotlin 版本更改为 1.3.50,但它应该是 1.3.0

如果您在查找任何文件夹时遇到问题,请告诉我

谢谢@sedhha,但没有任何效果..
image
得到同样的错误。 难道我做错了什么??

你能告诉我确切的错误吗?

这是我发表的上一条评论中的那个..

嗨@bdairy

我遇到了同样的问题。
请确保以下事项。 我仍然在您更新的版本声明中看到:

classpath 'com.android.tools.build:gradle:3.5.0'
which should be 3.3.1

Also have you set minimum sdk version to 21?
Further I hope you have added this set of lines in gradle.properties:

android.useAndroidX = 真
android.enableJetifier = 真

Also you have changed kotlin version to 1.3.50 but it should be 1.3.0

@sedhha我的朋友,你提到的所有问题都引起了同样的问题,
image

主要问题是 Kotlin 版本更新不影响构建...
如您所见,我的 kotlin 版本设置为ext.kotlin_version = '1.3.0' 。 但错误说它是org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.71

现在,如果有人有解决方案,请帮助我真的卡住了,而没有澄清问题......

@blasten关于这个问题的任何更新>? 有没有热修复? 任何事物 。 我可以,已经6天多了,求求你们了

仅供参考,问题出在一个名为 flutter_launch.. 的插件上在那里解决问题,谢谢大家的帮助。

@bdairy抱歉没有早点回复。 问题出在flutter_launch插件https://pub.dev/packages/flutter_launch。 您使用的是哪个版本的插件? 看到2019年6月更新的版本: https :

@csells将来会如何处理? 在升级 flutter 和我的插件后,我今天遇到了这个问题。 至少我们应该找到更好的错误消息,告诉用户该做什么,或者更好地让 flutter doctor 能够修复这些问题

此问题的解决涉及找到满足每个支持平台的版本约束的插件版本。 当 pub 解析依赖项时,它不了解平台依赖项,例如插件中使用的 Kotlin 版本。

也就是说,可以改进错误消息。

我们可以突出显示有问题的特定插件。 当前,您收到 Gradle 错误,将插件称为项目。

你好家伙 1 实际上有一个问题“同步项目与 gradles 文件”。 它已禁用,我如何启用并在 android 菜单中显示它
Screenshot from 2020-02-21 13-34-40
?

按着这些次序
第1步
$扑干净
$ flutter pub 缓存修复

第2步
在 appRoot -> android -> build.gradle

  • 设置 ext.kotlin_version = '1.3.50' 或更高版本
  • 在依赖项中将 gradle 版本设置为 3.6.1 或更高版本
    类路径 'com.android.tools. 构建:gradle :3.6.1'
  • 在子项目中添加
    项目.configurations.all {
    resolutionStrategy.eachDependency { 详细信息 ->
    if (details.requested.group == 'androidx.core' &&
    !details.requested.name.contains('androidx')) {
    details.useVersion "1.0.1"
    }
    }
    }

第 3 步
在 adnroid -> gradle -> wrapper -> gradle-wrapper.properties
将 gradle 设置为 gradle-5.6.4-all.zip 或更高版本
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip

第四步
$flutter 干净

第 5 步
$flutter 运行

我正在关闭此错误,因为原始问题是由组合 AndroidX 和支持依赖项引起的。 AndroidX 迁移指南介绍了避免此问题的步骤: https ://flutter.dev/docs/development/androidx-migration

如果您的 flutter 应用程序支持 kotlin,要解决此问题,您需要更改 android/build.gradle 中的 2 个值:

  1. 将 kotlin_version 从 1.2.71 更改为 1.3.0
  2. 将 gradle 版本从 3.2.1 更改为 3.3.2

截至 2019 年 3 月 28 日。

谢谢,为此,它对我有用

我将以下黑魔法粘贴到.../android/build.gradle (不是.../android/app/build.grade )中,这使问题消失了:

subprojects {
    project.configurations.all {
  resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'androidx.core' &&
         !details.requested.name.contains('androidx')) {
      details.useVersion "1.0.1"
            }
  }
    }    
}

非常适合我

如果您的 flutter 应用程序支持 kotlin,要解决此问题,您需要更改 android/build.gradle 中的 2 个值:

  1. 将 kotlin_version 从 1.2.71 更改为 1.3.0
  2. 将 gradle 版本从 3.2.1 更改为 3.3.2

截至 2019 年 3 月 28 日。

为我工作

我见过的最好的 Github 问题讨论之一

将 cloud_firestore 从 0.13.5 更新到 0.14.0+2 后再次遇到此问题。

也为我工作。

如果您的 flutter 应用程序支持 kotlin,要解决此问题,您需要更改 android/build.gradle 中的 2 个值:

将 kotlin_version 从 1.2.71 更改为 1.3.0
将 gradle 版本从 3.2.1 更改为 3.3.2
截至 2019 年 3 月 28 日。

这是它在 build.gradle 文件中的样子:

buildscript {
    ext.kotlin_version = '1.3.0'
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

当依赖它的包被更新/添加时,有没有办法让flutter做这个改变?

在所有建议之后仍然不起作用

不是开玩笑,我最近遇到了同样的问题(我收到了很多关于 AndroidX 的各种依赖项的抱怨,以-rc01版本结尾),并且强制解析策略的各种解决方案都不起作用。

我通过升级android/build.gradle文件中的 gradle 依赖项解决了这个问题: classpath 'com.android.tools.build:gradle:3.3.1' (我之前使用的是3.2.1

谢谢!它对我有用!

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

eseidelGoogle picture eseidelGoogle  ·  3评论

Hixie picture Hixie  ·  3评论

shadyaziza picture shadyaziza  ·  3评论

najeira picture najeira  ·  3评论

ppolasek picture ppolasek  ·  3评论