Flutter Release构建失败:sign_in_with_apple资源验证报错android:attr/lStar缺失
解决方案:Flutter Release构建报错
android:attr/lStar not found(未引入sign_in_with_apple) 问题原因
虽然你未直接在pubspec.yaml中引入sign_in_with_apple,但项目中某个依赖间接引入了该库的旧版本。android:attr/lStar是Android 12(API Level 31)新增的属性,旧版本的sign_in_with_apple会引用该属性,而你的Android项目编译SDK版本低于31,导致Release构建时资源链接失败(Debug模式下Gradle会做兼容处理,因此不会报错)。
解决步骤
1. 定位间接依赖来源
执行以下命令查看完整依赖树,找到引入sign_in_with_apple的父依赖:
flutter pub deps
2. 处理冲突依赖
- 优先升级父依赖到最新版本:多数情况下,父依赖的新版本会同步更新间接依赖的
sign_in_with_apple,解决版本兼容问题。 - 强制指定兼容版本:若无法升级父依赖,可在
pubspec.yaml中直接声明sign_in_with_apple的稳定兼容版:dependencies: # 你的其他依赖... sign_in_with_apple: ^5.0.0 # 选择适配你项目SDK版本的最新稳定版 - 依赖覆盖排除旧版本:如果上述方法无效,通过依赖覆盖强制替换旧版本:
dependency_overrides: sign_in_with_apple: ^5.0.0
3. 升级Android项目SDK版本
修改android/app/build.gradle文件,将compileSdkVersion和targetSdkVersion提升到31或更高(推荐33):
android { compileSdkVersion 33 defaultConfig { applicationId "com.your.app.id" minSdkVersion 21 # 根据你的项目需求调整 targetSdkVersion 33 // ...其他配置项 } }
4. 清理缓存并重新构建
执行以下命令清理构建缓存,再重新打包:
flutter clean flutter build apk --release
内容的提问来源于stack exchange,提问作者Anish Pokharel
相关产品推荐
相关产品推荐

