使用external_app_launcher时Flutter项目构建报错:android:attr/lStar未找到
问题场景
使用Flutter 3.24.0、Android SDK 34,项目Gradle配置compileSdkVersion=34、minSdk=21、Kotlin 2.0.0,集成external_app_launcher包时,release构建触发以下错误:
任务':external_app_launcher:verifyReleaseResources'执行失败。执行com.android.build.gradle.tasks.VerifyLibraryResourcesTask$Action时出现异常,Android资源链接失败,错误详情:C:\Users\erenium\IdeaProjects\pecs_app\build\external_app_launcher\intermediates\merged_res\release\values\values.xml:194: AAPT: error: resource android:attr/lStar not found。
解决方案
1. 强制依赖库使用项目一致的SDK版本
在项目根目录的android/build.gradle文件中,添加以下配置,强制external_app_launcher使用与项目相同的compileSdk和targetSdk版本:
allprojects { repositories { // 保留原有仓库配置 } subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { android { compileSdkVersion 34 defaultConfig { targetSdkVersion 34 } } } } } }
2. 升级external_app_launcher到最新版本
打开pubspec.yaml,将external_app_launcher的版本更新为最新稳定版,然后执行:
flutter pub get
3. 清理构建缓存
执行以下命令清理缓存后重新构建:
flutter clean flutter pub get cd android && ./gradlew clean cd .. && flutter build apk --release
原因说明
android:attr/lStar是Android 12L(API Level 32)新增的资源属性。如果external_app_launcher依赖库的compileSdkVersion低于32,构建时会无法识别该属性,导致资源链接失败。通过上述方法统一SDK版本或升级依赖,即可解决该问题。
内容的提问来源于stack exchange,提问作者Eren Malkoç

