Flutter应用在手机模拟器/真机运行失败:资源链接错误
错误原因
构建失败源于AndroidManifest.xml里MainActivity的android:configChanges属性包含了当前Android构建工具不支持的gender标志,导致processDebugResources资源链接任务执行出错。
具体错误提示:
AAPT: error: 'orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|gender|uiMode' 与configChanges属性标志不兼容,兼容标志为[colorMode=16384, density=4096, fontScale=1073741824, fontWeightAdjustment=268435456, keyboard=16, keyboardHidden=32, layoutDirection=8192, locale=4, mcc=1, mnc=2, navigation=64, orientation=128, screenLayout=256, screenSize=1024, smallestScreenSize=2048, touchscreen=8, uiMode=512]
解决步骤
- 打开项目路径
android/app/src/main/AndroidManifest.xml文件 - 定位到
MainActivity节点的android:configChanges属性,删除其中的gender字段 - 修改后的属性值应为:
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|uiMode"
- 重新执行
flutter run命令构建运行
补充说明
Chrome模拟器运行正常是因为Web端不受AndroidManifest配置约束,而真机/Android模拟器需要严格遵循Android资源配置规则;后续若再出现同类错误,可对照错误提示里的兼容标志列表,检查configChanges中的字段是否都在列表范围内。
内容的提问来源于stack exchange,提问作者Yousef

