运行flutter build apk --release打包Android API 26版APK报错如何解决
报错根因
你遇到的两个AAPT资源找不到报错,核心原因是android:attr/fontVariationSettings和android:attr/ttcIndex是Android API 27才新增的系统属性,你当前将compileSdkVersion设置为26,编译阶段无法识别这两个高版本属性,就会触发构建失败。而你将compileSdkVersion设为29时能正常打包,就是因为29版本的Android SDK包含了这两个属性的定义。
解决方案
方案1(优先推荐):不调整适配逻辑仅修改编译配置
你只需要将compileSdkVersion升级到27及以上即可,targetSdkVersion可以保留26不变,不会影响你适配API 26的需求,minSdkVersion设为20也完全不受影响。compileSdkVersion仅作用于编译阶段,不会限制APK的最低运行版本。
方案2:必须强制compileSdkVersion=26的处理方式
如果你的项目有硬性要求必须用API 26编译,可以通过强制降级AndroidX核心库版本解决,操作步骤如下:
- 打开项目安卓层的
app/build.gradle文件,在dependencies代码块之前添加如下配置:
configurations.all { resolutionStrategy { force 'androidx.core:core:1.0.0' } }
- 清理项目缓存后重新打包:依次执行
flutter clean、flutter pub get,再运行flutter build apk --release即可。
注意事项
如果项目中使用的第三方Flutter插件依赖了更高版本的AndroidX核心库,上述强制约束会覆盖插件的依赖声明,绝大多数场景下不会出现兼容问题,如果后续测试发现插件功能异常,再单独排查对应插件的版本依赖要求即可。
内容的提问来源于stack exchange,提问作者Navid Shokoufeh
相关产品推荐
相关产品推荐

