推荐超级课程:

前提
将 Flutter 升级到 3.24.4 后,构建在我的本地电脑上通过,但Github actions 构建时失败。
Flutter 构建环境
bash
No user-defined environment variables were set
== Use Xcode 16.2 ==
> sudo xcode-select --switch /Applications/Xcode-16.2.app/Contents/Developer
Xcode 16.2
Build version 16C5013f
== Use CocoaPods version 1.16.2 ==
> gem uninstall cocoapods --executables --all
Removing pod
Removing sandbox-pod
Successfully uninstalled cocoapods-1.15.2
> gem install cocoapods --version 1.16.2
Successfully installed cocoapods-core-1.16.2
Successfully installed cocoapods-1.16.2
Parsing documentation for cocoapods-core-1.16.2
Installing ri documentation for cocoapods-core-1.16.2
Parsing documentation for cocoapods-1.16.2
Installing ri documentation for cocoapods-1.16.2
Done installing documentation for cocoapods-core, cocoapods after 1 seconds
2 gems installed
> gem list '^cocoapods$' --no-verbose
cocoapods (1.16.2)
== Use Java version 17 ==
> java -version
openjdk version "17.0.13" 2024-10-15 LTS
OpenJDK Runtime Environment Zulu17.54+21-CA (build 17.0.13+11-LTS)
OpenJDK 64-Bit Server VM Zulu17.54+21-CA (build 17.0.13+11-LTS, mixed mode, sharing)
== Codemagic CLI tools ==
> codemagic-cli-tools version
codemagic-cli-tools 0.54.3
== Use Flutter version 3.24.4 ==
Flutter 3.24.4 • Dart 3.5.4
发生的错误
cpp
* What went wrong:
Execution failed for task ':uni_links:verifyReleaseResources'.
> A failure occurred while executing com.android.build.gradle.tasks.VerifyLibraryResourcesTask$Action
> Android resource linking failed
ERROR:/Users/builder/clone/app/build/uni_links/intermediates/merged_res/release/values/values.xml:194: AAPT: error: resource android:attr/lStar not found.
解决方案
1.更新目标包
某些软件包会出现此问题,可以通过升级软件包版本来解决。
2. 当难以替代时
在调查错误时,我发现另一个包存在问题。
https://github.com/livekit/client-sdk-flutter/issues/569#issuecomment-2275686786
我的修复方法:
compileSdkVersion
将 Flutter 更新到 3.24 后,这个问题再次出现。这与 Flutter 现在检查和的版本有关buildToolsVersion
。有些软件包要么指定了过时的版本,要么根本没有指定。
解决方案是,您需要将软件包更新到新版本。此外,如果您的软件包仍未指定这些参数,则可以在 build.gradle 的子项目指令之间添加一个脚本。该脚本如下所示:
将这些添加到android/build.gradle
中。只需在两个现有块之间android/app/build.gradle
添加中间块即可。
修复 app/build.gradle 子项目中 afterEvaluate 中的 SDK
rust
subprojects {
afterEvaluate { project ->
if (project.plugins.hasPlugin("com.android.application") ||
project.plugins.hasPlugin("com.android.library")) {
project.android {
compileSdkVersion 34
buildToolsVersion "34.0.0"
}
}
}
}
当我设置了它之后,构建就通过了。