Flutter项目构建报错Execution failed for task ':app:processDebugResources'求助
问题根因
android:usesPermissionFlags是Android 12(API等级31)才新增的Manifest属性,当前项目的安卓编译SDK版本(compileSdkVersion)低于31,导致AAPT编译时无法识别该属性。
解决步骤
- 第一步:升级模块级build.gradle的编译版本
打开android/app/build.gradle文件,修改android块下的配置:android { // 至少升到31,推荐升到33/34适配更高版本系统 compileSdk 33 defaultConfig { // 与compileSdk保持同版本即可 targetSdk 33 // 其余原有配置保持不变 } // 其余原有配置保持不变 } - 第二步:匹配AGP与Gradle版本(可选,第一步后仍报错再执行)
你当前使用的Android Gradle Plugin(AGP)版本为4.1.3,对API 31+的支持存在兼容性问题,可按如下规则升级:- 修改项目级build.gradle的AGP依赖:
dependencies { // 升级到7.0.4,和Gradle版本对应 classpath 'com.android.tools.build:gradle:7.0.4' // 其余原有依赖保持不变 }- 修改gradle-wrapper.properties的Gradle版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip - 第三步:清理缓存重新构建
依次执行以下命令:
手动删除flutter cleanandroid/.gradle文件夹后再重新运行项目即可。
注意事项
如果升级后出现新的android:exported相关报错,只需在AndroidManifest.xml中所有包含<intent-filter>的四大组件(activity、service、receiver、provider)标签上添加android:exported="true"(对外暴露的组件)或android:exported="false"(仅内部使用的组件)即可。
内容的提问来源于stack exchange,提问作者Eduardo Campos
相关产品推荐
相关产品推荐

