Flutter项目编译报错:找不到android:attr/windowOptOutEdgeToEdgeEnforcement属性
windowOptOutEdgeToEdgeEnforcement属性找不到 错误信息
FAILURE: Build failed with an exception.
问题原因:任务':app:processDebugResources'执行失败。
执行com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction时出错
Android资源链接失败
com.coherent.EarHealth.app-mergeDebugResources-47:/values-v35/values-v35.xml:4: error: style attribute 'android:attr/windowOptOutEdgeToEdgeEnforcement' not found.
error: failed linking references.
问题根源
android:attr/windowOptOutEdgeToEdgeEnforcement是**Android 14(API 35)**新增的系统属性,当前项目compileSdkVersion设置为34,构建工具无法识别该属性。该属性通常由Flutter Android嵌入框架或依赖库自动生成的values-v35资源文件引入。
解决方案
方案1:升级API版本(推荐)
直接适配Android 14 API,从根本上解决属性识别问题:
- 修改
app/build.gradle中的配置:
android { compileSdkVersion 35 // ... defaultConfig { targetSdkVersion 35 // ... } }
- 修改
android/build.gradle的全局编译配置:
subprojects { afterEvaluate { project -> if (project.plugins.hasPlugin("com.android.application") || project.plugins.hasPlugin("com.android.library")) { project.android { compileSdkVersion 35 buildToolsVersion "35.0.0" // 匹配API 35的构建工具版本 } } } }
- 同步Gradle后重新构建项目。
方案2:临时屏蔽v35资源(仅应急)
若暂时无法升级API,可通过Gradle排除自动生成的v35资源:
在app/build.gradle的android块中添加:
android { // ... sourceSets { main { res.exclude 'values-v35/**' } } }
⚠️ 注意:此方案可能导致Android 14设备上UI显示异常,仅作为临时过渡方案,建议尽快升级API版本。
验证操作
完成修改后,执行以下命令清理并重新构建:
flutter clean flutter build apk --debug
内容的提问来源于stack exchange,提问作者Vennila Murugesan

