flutter.compileSdkVersion 在哪里?

Pri*_*hrm 26 flutter

在构建 flutter 应用程序时,我收到此错误。

One or more plugins require a higher Android SDK version.
Fix this issue by adding the following to C:\flutter\projects\my_app\android\app\build.gradle:
android {
  compileSdkVersion 33
  ...
}
Run Code Online (Sandbox Code Playgroud)

但是,在我的 build.gradle 中我有:

android {
    compileSdkVersion flutter.compileSdkVersion
...
}
Run Code Online (Sandbox Code Playgroud)

但我无法找到定义 flutter.compileSdkVersion 的位置。知道这是在哪里定义的吗?我已经运行 flutter Upgrade 并且 flutter --version 返回 Flutter 3.0.5。

Rob*_*erg 30

为了严格回答你的问题,设置来自这里的flutter安装目录:

<flutter-installation>\packages\flutter_tools\gradle\flutter.gradle
Run Code Online (Sandbox Code Playgroud)

更改设置的一些选项:

如果您希望将设置集中在一处,那么您可以在文件中将其设置local.properties为:

flutter.compileSdkVersion=33
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式更改 build.gradle:

android {
  compileSdkVersion localProperties.getProperty('flutter.compileSdkVersion').toInteger()
...
}
Run Code Online (Sandbox Code Playgroud)

或者(显然)直接将版本设置为:

android {
  compileSdkVersion 33
...
}
Run Code Online (Sandbox Code Playgroud)


Rah*_*hul 9

每个flutter版本都有一个compileSdkVersion属性以及其他属性。从 Flutter 3.3.8 开始,它是 31。

您可以在此处访问代码 https://chromium.googlesource.com/external/github.com/flutter/flutter/+/refs/heads/dev/packages/flutter_tools/gradle/flutter.gradle#33

将来它可能会超过 33。如果您将值硬编码为 33,flutter 可能会停止构建并出现错误。

所以解决方案应该是

compileSdkVersion Math.max(flutter.compileSdkVersion, 33)

现在,将来如果 flutter 将属性更改为 35,您的代码将不会中断。