我发现了很多关于此错误的讨论,但我无法修复它。
我有一个 flutter 项目,构建为 Android 和 iOS。我刚刚从 3.7.10 升级到 3.19.0,并且正在升级 pubspec 库:
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
flutter_svg: ^2.0.10+1
provider: ^6.0.5
qr_flutter: ^4.1.0
polygon: ^0.1.0
http: ^1.1.0
shared_preferences: ^2.2.1
url_launcher: ^6.1.14
intl: ^0.18.1
collection: ^1.17.2
add_2_calendar: ^3.0.1
text_scroll: ^0.2.0
ory_client: ^1.2.11
webview_flutter: ^4.7.0
get_it: ^7.6.7
injectable: ^2.3.2
dio: ^5.3.3
one_of: ^1.5.0
flutter_web_auth: ^0.5.0
flutter_libphonenumber: ^2.1.5
flutter_widget_from_html: ^0.14.11
dev_dependencies:
flutter_test:
sdk: flutter
injectable_generator: ^2.4.1
build_runner: ^2.4.6
flutter_lints: ^3.0.1
build.gradle:
buildscript {
ext.kotlin_version = '1.7.21'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.1.4'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
mavenCentral()
}
subprojects {
afterEvaluate { project ->
if (project.hasProperty('android')) {
project.android {
if (namespace == null) {
namespace project.group
}
}
}
}
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
tasks.register("clean", Delete) {
delete rootProject.buildDir
}
当我尝试运行或构建项目时,出现以下错误:
* What went wrong:
The Android Gradle plugin supports only Kotlin Gradle plugin version 1.5.20 and higher.
The following dependencies do not satisfy the required version:
project ':wakelock' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50
* 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 2s
Error: Gradle task assembleDebug failed with exit code 1
我认为问题在于 iOS 依赖项唤醒锁,但如果我看一下它的 gradle,我发现
ext.kotlin_version = '1.6.10'
如果在 Android Studio 中我执行
CTRL + SHIFT + F
并查找所有 ext.kotlin_version
,所有都大于 1.3.50。
我已经完成了
flutter clean
和flutter pub get
。
怎么了?
问题是,由于
wakelock
中存在另一个库,所以 pubspec.yaml
被包含为依赖项,最低要求是一个非常旧的版本,它与旧的 gradle 版本一起运行。为了解决这个问题,我需要添加一个更新的版本,即使我不直接使用它。添加 wakelock: ^0.6.2
解决了我的问题。