Flutter构建Release APK报错:resource android:attr/lStar not found
解决Flutter Release构建时
android:attr/lStar not found错误 问题分析
错误提示的android:attr/lStar是AndroidX Core 1.7.0及以上版本新增的属性,对应Android 13(API 33)的主题资源。你的项目中第三方依赖(如background_fetch)间接引入了高版本的AndroidX Core,导致Release构建时资源链接失败——而Debug构建因资源处理逻辑不同,未触发该问题。
解决方案
1. 全局强制统一AndroidX Core版本
在项目根目录的android/build.gradle文件中,添加subprojects配置,强制所有模块(包括第三方依赖)使用指定版本的AndroidX Core:
buildscript { ext { kotlin_version = "1.6.10" androidXCore = "1.6.0" } // 保留原有的repositories和dependencies配置 } // 新增以下全局版本约束配置 subprojects { project.configurations.all { resolutionStrategy { force "androidx.core:core-ktx:${androidXCore}" force "androidx.core:core:${androidXCore}" } } }
2. 确认编译配置一致性
确保android/app/build.gradle中的核心编译配置正确:
android { compileSdkVersion 33 defaultConfig { minSdkVersion 31 // 保留其他原有配置 } // 保留其他原有配置 }
3. 清理缓存并重新构建
执行以下命令彻底清理缓存后重新构建:
flutter clean rm -rf ~/.gradle/caches # Linux/macOS用户执行;Windows用户手动删除C:\Users\<你的用户名>\.gradle\caches目录 flutter build apk --release
说明
你之前尝试的ext变量配置仅对当前模块生效,无法约束第三方依赖的版本。通过resolutionStrategy.force可以强制所有依赖模块使用指定的AndroidX Core版本,避免因版本不一致导致的资源缺失问题。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

