Flutter Android 在 local.properties 文件中设置compileSdkVersion

vie*_*one 5 android gradle flutter

如果我compileSdkVersion 33在build.gradle中设置,就可以了。但这是一种硬代码,所以我尝试将其设置在local.properties文件中。

正如我已经flutter.minSdkVersion=23在该文件中设置的那样,我认为flutter.compileSdkVersion=33工作原理相同,但事实并非如此。

细节:

local.properties 文件:

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

构建.gradle 文件:

def flutterCompileSdkVersion = localProperties.getProperty('flutter.compileSdkVersion')
if (flutterCompileSdkVersion == null) {
    flutterCompileSdkVersion = flutter.compileSdkVersion
}

...

compileSdkVersion flutterCompileSdkVersion // error here
compileSdkVersion 33 // this works
Run Code Online (Sandbox Code Playgroud)

错误信息:

FAILURE: Build failed with an exception.

* Where:
Script '/Users/vietstone-ng/Library/flutter/packages/flutter_tools/gradle/flutter.gradle' line: 461

* What went wrong:
A problem occurred evaluating root project 'android'.
> A problem occurred configuring project ':app'.
   > String index out of range: -6

* 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 785ms
Run Code Online (Sandbox Code Playgroud)

是否有办法在 local.properties 文件中设置compileSdkVersion?

Nat*_*sea 12

我可以使用 local.properties 这样设置它:

// in YourProject/android/app/build.gradle
...
android {  
    compileSdkVersion localProperties.getProperty('flutter.compileSdkVersion').toInteger()
    ...
}
Run Code Online (Sandbox Code Playgroud)

以下内容不起作用

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

Maldus 最初在这里回答了